我是以下没有任何父节点的XML片段
<Message>
<Header>
<ID>1234</ID>
<Name>xxxx</Name>
</Header>
</Message>
<Message>
<Header>
<ID>4567</ID>
<Name>YYYY</Name>
</Header>
</Message>
<Message>
<Header>
<ID>6789</ID>
<Name>zzzz</Name>
</Header>
</Message>
我只想提取Name
标签中包含的数据。这怎么可能?
答案 0 :(得分:1)
您可以使用SAXParser
解析所有名称,如下所示......
public class NameXMLParser extends DefaultHandler {
List<String> nameList = new ArrayList<String>();
private boolean isName = false;
private StringBuffer mBuffer = new StringBuffer();
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {
if (localName.equalsIgnoreCase("Name")) {
isTitle = true;
}
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
if (isName) {
mBuffer.append(new String(ch, start, length));
}
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
if (localName.equalsIgnoreCase("Name")) {
nameList.add(mBuffer.toString());
isTitle = false;
mBuffer.delete(0, mBuffer.length());
}
}
public List<String> getNameList() {
return nameList;
}
}