Android 使用dom解析的嵌套xml解析 我的xml如下所示……在这里,我如何使用DOM xml从状态标记中获取名称属性 解析。。。 6. 1706729 完整的 黑色 5. 1706929 新的 白色

Android 使用dom解析的嵌套xml解析 我的xml如下所示……在这里,我如何使用DOM xml从状态标记中获取名称属性 解析。。。 6. 1706729 完整的 黑色 5. 1706929 新的 白色,android,xml-parsing,Android,Xml Parsing,这样你就可以得到你想要的东西 My xml is as follows...In this how can I get NAME attribute from status tag using DOM xml parsing... <tickets type="array"> <ticket> <ticket-id type="integer">6</ticket-id> <sta

这样你就可以得到你想要的东西

My xml is as follows...In this how can I get NAME attribute from status tag using DOM xml   
parsing...

 <tickets type="array">
    <ticket>
           <ticket-id type="integer">6</ticket-id>
           <status>
               <id type="integer">1706729</id>
               <name>Completed</name>
               <colour>black</colour>

           </status>
    </ticket>

    <ticket>
           <ticket-id type="integer">5</ticket-id>
           <status>
               <id type="integer">1706929</id>
               <name>New</name>
               <colour>White</colour>

           </status>
    </ticket>
</tickets>
String xml=“61706729完成的黑色51706929新白色”;
Log.e(“xml解析”,xml);
试一试{
DocumentBuilderFactory domFactory=DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
domFactory.setIgnoringComments(true);
setIgnoringElementContentWhitespace(true);
domFactory.setCoalescing(true);
DocumentBuilder domBuilder=null;
单据=空;
试一试{
domBuilder=domFactory.newDocumentBuilder();
}
捕获(ParserConfiguration异常ParserConfiguration异常){
Logger.log(Logger.LEVEL_错误,FrameworkHelper.class.getName(),“getDocumentRoot”,“创建DocumentBuilder对象时捕获的ParserConfiguration异常,”+ParserConfiguration异常.getMessage());
}
document=domguilder.parse(新的ByteArrayInputStream(xml.getBytes());//尝试捕获
nodelistticketlist=document.getElementsByTagName(“票证”);
对于(int i=0;i

但是,如果层次结构不需要维护,您只需要独立处理名称,您也可以直接调用getElementsByTagName(“名称”)

Thanx进行重播..但看看我的xml,它是嵌套的..您建议我的教程包含简单的xml。使用getElementbyTag(“票证”)一次&做一个循环&之后再次使用内部循环getElementbyTag(“状态”)&获取所有您想要的值我尝试过但不起作用…您可以输入一些示例代码吗?给出此xml的url,然后我会尝试,我已经编辑了上面的代码,请检查并确认!
String xml = "<tickets type=\"array\"><ticket><ticket-id type=\"integer\">6</ticket-id><status><id type=\"integer\">1706729</id><name>Completed</name><colour>black</colour></status></ticket><ticket><ticket-id type=\"integer\">5</ticket-id><status><id type=\"integer\">1706929</id><name>New</name><colour>White</colour></status></ticket></tickets>";
            Log.e("xml parsing ", xml);
            try {
                DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
                domFactory.setNamespaceAware(true);
                domFactory.setIgnoringComments(true);
                domFactory.setIgnoringElementContentWhitespace(true);
                domFactory.setCoalescing(true);
                DocumentBuilder domBuilder = null;
                Document document = null;

                try {
                    domBuilder = domFactory.newDocumentBuilder();
                }
                catch (ParserConfigurationException parserConfigurationException) {
                    Logger.log(Logger.LEVEL_ERROR, FrameworkHelper.class.getName(), "getDocumentRoot", "ParserConfigurationException caught while creating DocumentBuilder object, " + parserConfigurationException.getMessage());
                }

                document = domBuilder.parse(new ByteArrayInputStream(xml.getBytes()));//try catch
                NodeList ticketList = document.getElementsByTagName("ticket");
                for (int i = 0; i < ticketList.getLength(); i++) {
                  Element ticketNode = (Element) ticketList.item(i);
                  String tickets = ticketNode.getNodeValue();
                  NodeList statusList = ticketNode.getElementsByTagName("status");
                  for (int j = 0; j < statusList.getLength(); j++) {
                    Element statusNode = (Element) statusList.item(j);
                    String statuses = statusNode.getNodeValue();
                    NodeList nameList = statusNode.getElementsByTagName("name");
                    for (int k = 0; k < nameList.getLength(); k++) {
                      Element nameNode = (Element) nameList.item(k);
                      String names = nameNode.getChildNodes().item(0).getNodeValue();
                      Toast.makeText(this, "name: " + names,
                            Toast.LENGTH_SHORT).show();
                    }
                  }
                }
            } catch (SAXException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }