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

时间:2017-10-02 14:50:36

标签: java xml

我可以解析这样的事情:

<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'

我尝试了几件事,但我无法成功解析价值&#39;从这个:

<tag><value/></tag>

它似乎是有效的XML,但我不知道这种格式是什么或如何解析该值。

欢迎任何建议!

修改

从评论中看,<value/>只是<tag>中的另一个标记。为了获得价值&#39;我必须得到子标签名称:

NodeList nodes = doc.getElementsByTagName("tag");
String value = nodes.item(0).getChildNodes().item(0).getNodeName();

此格式的值是否有名称(&lt;&gt;以/结尾的标记中的一个)?

1 个答案:

答案 0 :(得分:0)

要在节点value中获取节点名称<tag>,请执行以下操作:

   System.out.println(nodes.item(0).getFirstChild().getNodeName());

要获取值的文本内容,请执行以下操作(<tag><value>5</value></tag>):

System.out.println(nodes.item(0).getFirstChild().getTextContent());