来自 XML <tag><value/></tag> 的 Java 解析值



我能够解析这样的东西:

<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());

最新更新