使用 SAX Parser,获取属性的值

Posted

技术标签:

【中文标题】使用 SAX Parser,获取属性的值【英文标题】:With SAX Parser, get an attribute's value 【发布时间】:2012-05-01 19:44:29 【问题描述】:

我正在使用 android 从 Web 解析 XML。下面的代码显示了 XML 的示例。我遇到的问题是我无法获取项目标签的字符串值。当我使用name = attributes.getQName(i); 时,它会输出名称,而不是属性的值。

<weatherdata>
 <timetags>
  <item name="date">
   <value>20/04/2012</value>
   <unit/>
   <image/>
   <class>dynamic</class>
   <description>The current date</description>
  </item>

【问题讨论】:

【参考方案1】:

使用

attributes.getValue(i);

而不是

attributes.getQName(i);

因为正如doc 所说:

getQName返回一个属性的限定(前缀)名称。

getValue通过限定(前缀)名称查找属性值。

查看this 获取属性名称和值的示例

【讨论】:

【参考方案2】:
 @Override
public void startElement(String uri, String localName, String qName,
        Attributes attributes) throws SAXException 
     if(localName.equalsIgnoreCase("item"))
        //currentMessage.setMediaUrl(attributes.getValue(BaseFeedParser.Url));
                     String valueis=attributes.getValue("name")
    
    super.startElement(uri, localName, qName, attributes);

【讨论】:

【参考方案3】:

试试attributes.getValue(i)方法

【讨论】:

以上是关于使用 SAX Parser,获取属性的值的主要内容,如果未能解决你的问题,请参考以下文章

使用 Sax Parser、Java 处理 XML 中的空标签

如何在 Java 中使用 SAX Parser 检查 xml 标签是不是具有属性?

如何在 android 中使用 SAX Parser 为解析的 xml 文件设置 UTF-8

SAX 解析器从 endelement 获取属性

使用 SAX 解析器解析 Xml

java解析xml文件,会把节点属性中的换行转换成空格,怎样才能避免此类转换,即保留换行