Android 解析XML数据时遇到问题
我有一个.xml文件,如下所示:Android 解析XML数据时遇到问题,android,Android,我有一个.xml文件,如下所示: <entry> <question>Which is larger? An elephant or a cat?</question> <answer>Elephant</answer> </entry> 试试这个 DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance
<entry>
<question>Which is larger? An elephant or a cat?</question>
<answer>Elephant</answer>
</entry>
试试这个
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
try {
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new InputSource(new ByteArrayInputStream(xml.getBytes("utf-8"))));
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("entry");
for (int temp = 0; temp < nList.getLength(); temp++) {
Element element = (Element) nList.item(temp);
NodeList q= element.getElementsByTagName("question");
Element line = (Element) q.item(0);
String question = getCharacterDataFromElement(line);
tvQuestion.setText(question);
NodeList a = element.getElementsByTagName("answer");
line = (Element) a.item(0);
String answer = getCharacterDataFromElement(line);
tvAnswer.setText(answer);
}
} catch (Exception e) {
}
public static String getCharacterDataFromElement(Element e) {
Node child = e.getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
return cd.getData();
}
return "";
}
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
文档生成器dBuilder;
试一试{
dBuilder=dbFactory.newDocumentBuilder();
Document doc=dBuilder.parse(新的InputSource(新的ByteArrayInputStream(xml.getBytes(“utf-8”)));
doc.getDocumentElement().normalize();
NodeList nList=doc.getElementsByTagName(“条目”);
对于(int-temp=0;temp
post错误日志。当UI线程被阻塞5秒或更长时间时,将显示应用程序未响应,即ANR。您的解析器代码可能有一个无限循环。在调试器中单步执行代码以了解解析器循环未终止的原因。单步执行代码后,我发现在第一个while循环和下面的if语句之间有一个无限循环。为了解决这个问题,我在while语句中添加了一个额外的条件:while(parser.next()!=XmlPullParser.END\u标记和parser.getEventType()!=XmlPullParser.END\u文档)
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
try {
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new InputSource(new ByteArrayInputStream(xml.getBytes("utf-8"))));
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("entry");
for (int temp = 0; temp < nList.getLength(); temp++) {
Element element = (Element) nList.item(temp);
NodeList q= element.getElementsByTagName("question");
Element line = (Element) q.item(0);
String question = getCharacterDataFromElement(line);
tvQuestion.setText(question);
NodeList a = element.getElementsByTagName("answer");
line = (Element) a.item(0);
String answer = getCharacterDataFromElement(line);
tvAnswer.setText(answer);
}
} catch (Exception e) {
}
public static String getCharacterDataFromElement(Element e) {
Node child = e.getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
return cd.getData();
}
return "";
}