如何停止getNodeName()也打印节点类型

Eve*_*oob 3 java xml netbeans

我很难过,希望我刚做了一件容易修理的蠢事.

我传入一个充满XML的字符串,即'XMLstring'.我想获取其中一个元素并在控制台上的"name = value"中打印子节点.问题是控制台不断打印垃圾以及我无法解决的元素名称.

无论如何,这段代码:

try {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        InputSource is = new InputSource();
        is.setCharacterStream(new StringReader(XMLstring));
        Document doc = db.parse(is);

        NodeList nodes = doc.getElementsByTagName("client-details");
        Node node = nodes.item(0);

        NodeList client_details = node.getChildNodes();

        for (int i = 0; i < client_details.getLength(); i++) {
            System.out.println(client_details.item(i).getNodeName()+" = "+getTextContents(client_details.item(i)));
        }
    }
    catch (Exception e) {
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

给我以下内容:

#text = 
testing-mode = false
#text = 
name = testman
#text = 
age = 30
Run Code Online (Sandbox Code Playgroud)

为什么打印"#text ="?我怎么摆脱它?

如果有帮助,我正在使用NetBeans.

ret*_*one 6

您想要使用getNodeValue()代替:

System.out.println(client_details.item(i).getNodeValue()+" = "+getTextContents(client_details.item(i)));
Run Code Online (Sandbox Code Playgroud)

如果查看本页顶部的表格,您会看到对于Text节点,getNodeName()返回#text.