繁体   English   中英

解析XML以检索相同标签的多个值

[英]Parse XML to retrieve multiple values of same tag

我是XPath和XML的新手。 我正在尝试从标签中检索特定标签的值。 以下树形结构中的特定标签

<article>
<front>
<article-meta>
<supplementary-material id="SM2379">
<caption><title>arg_3.docx</title></caption>
</supplementary-material>
<supplementary-material id="SM2375">
<caption><title>arg_2.docx</title></caption>
</supplementary-material>
<supplementary-material id="SM2373">
<caption><title>Sulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.docSulental_material.doc</title></caption>
</supplementary-material>
</article-meta>
</front>
</article>

我想检索此示例文件中的所有“ title ”标记以及父标记的“ id ”。 当我需要添加到现有功能时,我有一些限制,例如使用jdom,可以使用xpath等

任何帮助将不胜感激

如果像示例中那样直接构建节点,则很容易实现您要执行的操作。

你必须

  • 使用您必须使用的任何内容解析xml文件(jdom)
  • 使用XPath查询来检索标题节点。 //title可以满足您的要求)
  • 获取祖父母元素的ID

这些任务应该很容易处理!


除了评论:

您提供的代码:

XPath xpath = XPathFactory.newInstance().newXPath();
NodeList n1 = (NodeList) xpath.evaluate("article/front/article-meta/supplementary-material/caption/title", document, XPathConstants.NODESET);
for (int k = 0; k < n1.getLength();k++)
{
    System.out.println(n1.item(k).getNodeName()+" : "+n1.item(k).getTextContent());
}

效果很好。 但是您提供的代码在我的IDE中存在一些UTF-8问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM