2012-12-19 46 views
-1

我得到这种XML的,Android:如何解析这个XML?

<?xml version="1.0"?> 
<bats> 
<symbols timestamp="2012-12-19 10:10:47" count="7984"> 
<symbol name="A"/> 
<symbol name="AA"/> 
<symbol name="AA-"/> 
<symbol name="AAAA~"/> 
<symbol name="AACC"/> 
<symbol name="AADR"/> 

等等

我需要提取名存实亡= “文本” 的元素。

请问我该怎么做?

感谢您的帮助!

+2

这不是一个结构良好的XML。 – neevek

+0

我知道..... :-) –

+1

http://developer.android.com/training/basics/network-ops/xml.html? – fiddler

回答

3

要解析的文字是一个属性里面,你可以用SAX解析器这样分析它的startElement方法内:

public void startElement(String uri, String localName, String qName, 
     Attributes atts) throws SAXException { 
     String key; 
     if(qName.equals("symbol")) { 
      key = atts.getValue("name"); 
     } 
    } 

编辑: 我因子评分,这将是唯一的一小部分你XML ...你无法解析无效的XML。 但是,您可以抓取该XML并执行类似操作(以使其有效):

parsedXml.append("\n</bats>"); 
+0

谢谢,但我需要的是名称后的文本=所以你的解决方法不会成功 –

+1

这不是一个解决方法。这是解析一个属性的正确方法......在这个例子中,你将'name'值存储到一个字符串(key)中(将其更改为一个ArrayList,它将满足你的需求) – Ahmad