我能够解析这样的东西:
<tag>value</tag>
通过:
File inputFile = new File("input.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
doc.getDocumentElement().normalize();
NodeList nodes = doc.getElementsByTagName("tag");
String value = nodes.getLength() > 0 ? nodes.item(0).getTextContent().trim() : "";
System.out.println(value); // prints 'value'
我尝试了几件事,但是我无法从中成功解析"价值":
<tag><value/></tag>
它似乎是有效的XML,但是我不知道这种格式是什么或如何解析值。
欢迎任何建议!
编辑:
从评论中,看来<value/>
只是<tag>
中的另一个标签。要获得"值",我必须获取子标签名称:
NodeList nodes = doc.getElementsByTagName("tag");
String value = nodes.item(0).getChildNodes().item(0).getNodeName();
是否有此格式中值的名称(一个in&lt;>标记以/)?
要在节点<tag>
内获取节点名称value
,请执行以下操作:
System.out.println(nodes.item(0).getFirstChild().getNodeName());
获得值的文本内容如下(<tag><value>5</value></tag>
):
System.out.println(nodes.item(0).getFirstChild().getTextContent());