0

如果我有这样的 XML 文件

<UI>
<Option type="menu">
    <Name>MENU1</Name>
    <Option type="action">
        <Name>Action1</Name>
        <Function>Clicked Action1</Function>
    </Option>
</Option>
</UI>

要获取第一个文本节点(MENU1)的值,请执行以下操作:

Node rootNode=dom1.getFirstChild();
String name=rootNode.getNodeValue();
Log.i(TAG,"ROOT NAME is :=",name);

上面的代码给了我空白,同时使用

 Sting name=rootNode.getNodeName();

它给了我#text,这意味着它确实有一个文本,但为什么它没有显示?

4

3 回答 3

0

尝试文档对象模型(DOM 解析器)

请看这段代码:

DocumentBuilderFactory odbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder odb =  odbf.newDocumentBuilder();
            InputSource is = new InputSource(new StringReader(xml));
            Document odoc = odb.parse(is);
            odoc.getDocumentElement().normalize ();    // normalize text representation
            System.out.println ("Root element of the doc is " + odoc.getDocumentElement().getNodeName());
            NodeList LOP = odoc.getElementsByTagName("locations");
            int totalPersons =LOP.getLength();
            System.out.println("Total nos of locations:"+totalPersons);

            for(int s=0; s<LOP.getLength() ; s++)
            {
                Node FPN =LOP.item(s);
                if(FPN.getNodeType() == Node.ELEMENT_NODE)
                    {

                    Element latlon = (Element)FPN;                                                                

                    NodeList oNameList1 = latlon.getElementsByTagName("featured");                                       
                    Element firstNameElement = (Element)oNameList1.item(0);
                    NodeList textNList1 = firstNameElement.getChildNodes();
                    //this.setLocationId(((Node)textNList1.item(0)).getNodeValue().trim());                                 
                    System.out.println("#####The Parsed data#####");
                    System.out.println("featured : " + ((Node)textNList1.item(0)).getNodeValue().trim());            
                    System.out.println("#####The Parsed data#####");

                   }



       }

有关更多详细信息,请参阅此链接:

http://tutorials.jenkov.com/java-xml/dom.html

于 2012-08-16T07:04:27.980 回答
0

在选项上方添加一个额外的节点

<test> 
<Option type="menu">
  <Name>MENU1</Name>
  <Option type="action">
      <Name>Action1</Name>
      <Function>Clicked Action1</Function>
  </Option>
</Option>
</test>

并检查以下网址,您将能够获取所有节点的值 http://examples.javacodegeeks.com/core-java/xml/sax/get-element-attributes-in-sax-xml-parsing

于 2012-08-16T06:36:41.497 回答
0

我遇到了类似的问题。请尝试getTextContent()方法而不是 getNodeValue()。

于 2013-06-11T11:28:47.843 回答