我很难过,希望我刚做了一件容易修理的蠢事.
我传入一个充满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.
您想要使用getNodeValue()代替:
System.out.println(client_details.item(i).getNodeValue()+" = "+getTextContents(client_details.item(i)));
Run Code Online (Sandbox Code Playgroud)
如果查看本页顶部的表格,您会看到对于Text节点,getNodeName()返回#text.
| 归档时间: |
|
| 查看次数: |
3325 次 |
| 最近记录: |