使用SAX解析器,获取属性的值

时间:2022-08-27 20:25:19

I am parsing XML from the web using Android. The code below shows a sample of the XML. The problem I'm having is I can't get the string value of the item tag. When I use name = attributes.getQName(i); it outputs the name, not the value of the attribute.

我正在使用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>

3 个解决方案

#1


17  

use

使用

attributes.getValue(i);

instead of

而不是

attributes.getQName(i);

because as doc says :

因为正如医生所说:

getQName :Return an attribute's qualified (prefixed) name.

getQName:返回属性的限定名(前缀)。

getValue : Look up an attribute's value by qualified (prefixed) name.

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

see this example for getting attribute name and value

参见此示例获取属性名和值

#2


13  

 @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


2  

Try attributes.getValue(i) method

尝试attributes.getValue(i)方法

#1


17  

use

使用

attributes.getValue(i);

instead of

而不是

attributes.getQName(i);

because as doc says :

因为正如医生所说:

getQName :Return an attribute's qualified (prefixed) name.

getQName:返回属性的限定名(前缀)。

getValue : Look up an attribute's value by qualified (prefixed) name.

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

see this example for getting attribute name and value

参见此示例获取属性名和值

#2


13  

 @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


2  

Try attributes.getValue(i) method

尝试attributes.getValue(i)方法