![](/img/trans.png)
[英]While using sax parser for parsing an xml with '&' as a part of data, the parser breaks
[英]Parsing XML data Using Sax Parser
我在android中工作,需要帮助解析以下XML数据并将其显示在listview上。 我正在使用Sax解析器来解析数据
<NotifyList>
<Notify><Name>Raj</Name><Age>12</Age><Status>1</Status></Notify>
<Notify><Name>G</Name><Age>11</Age><Status>2</Status></Notify>
<Notify><Name>D</Name><Age>21</Age><Status>1</Status><Mobile>23232324</Mobile></Notify>
<Notify><Name>erwer</Name><Age>3</Age><Status>2</Status><Mobile>235534</Mobile></Notify>
<NotifyList>
在上面的xml数据中,您可以找到Mobile标签缺少的第一行和第二行。 我必须检查标签是否存在,如果标签不存在,我需要将其附加到列表视图中的空值,如下所示。
坦瑟斯·坦克斯
ArrayList<String> parsedtxt =new ArrayList<String>();
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
boolean partxt = false;
@Override
public void startElement(String uri, String localName,
String qName, Attributes attributes)
throws SAXException {
if (qName.equalsIgnoreCase("Notify")) {
partxt = true;
}
}
@Override
public void endElement(String uri, String localName,
String qName) throws SAXException {
// TODO Auto-generated method stub
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
if (partxt) {
System.out.println("Product : " + new String(ch, start, length).trim());
parsedtxt.add(new String(ch, start, length).trim());
}
}
};
asset = this.getAssets();
in = asset.open(xmlnam+"det.xml");
saxParser.parse(in, handler);
} catch (Exception e) {
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.