首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析XML以检索同一标记的多个值

解析XML以检索同一标记的多个值
EN

Stack Overflow用户
提问于 2016-12-27 10:01:51
回答 1查看 1.6K关注 0票数 0

我是XPath和XML的新手。我试图从标记中检索特定标记的值。以下树结构中的特定标记

代码语言:javascript
复制
<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等。

任何帮助都将是非常感谢的

EN

回答 1

Stack Overflow用户

发布于 2016-12-27 10:23:55

如果节点像在您的示例中一样直接地建立起来,那么很容易实现您想要做的事情。

你得

  • 使用您必须使用的任何内容解析xml-文件(jdom)
  • 使用XPath查询检索标题节点。(在您的情况下,//title就可以了)
  • 获取祖父母元素的ID

这些任务应该足够容易处理!

除评论外:

你提供的守则:

代码语言:javascript
复制
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问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41342995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档