java - 获取叶节点 - Java 中的 XML 解析

标签 java xml

是否可以解析 XML 并获取所有叶节点?

<root>
<emp>
<name>abc<name>
<age>12</age>
</emp>
<dept>
<branch>cse</branch>
</dept>
</root>

我的输出应该是 姓名 年龄 分支机构

最佳答案

使用此 XPath 表达式查找没有其他元素作为子元素的所有元素://*[count(./*) = 0]

try {
  final Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("input.xml");
  final XPathExpression xpath = XPathFactory.newInstance().newXPath().compile("//*[count(./*) = 0]");
  final NodeList nodeList = (NodeList) xpath.evaluate(doc, XPathConstants.NODESET);
  for(int i = 0; i < nodeList.getLength(); i++) {
    final Element el = (Element) nodeList.item(i);
    System.out.println(el.getNodeName());
  }
} catch (Exception e) {
  e.printStackTrace();
}

结果是

name
age
branch

关于java - 获取叶节点 - Java 中的 XML 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20783506/

相关文章:

java - 您如何跟踪 PDPageContentStream 文本输出的位置?

Java 列表过滤和查找第一个/查找最后一个

xml - 如何使用备忘录数据类型将 XML 导入到 MS Access?

android - 什么是应用程序 :overlayImage in xmlns:app="http://schemas. android.com/apk/res-auto?

java - 添加指向 REST 响应的链接

java - 计算元音的数量并以元音较多的字符串在前的方式打印它们

java - 使 JTree 叶子显示为空目录而不是文件

python - 使用 Python 解析 XML 文件的文本

xml - USPS - 如何通过 API 获取国际运费?

java - 如何解释 "jmap -permstat"的输出?