Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 解析XML数据时遇到问题_Android - Fatal编程技术网

Android 解析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

我有一个.xml文件,如下所示:

<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 "";
}