Java XPath获取具有特定标签和特定文本匹配的所有节点

迈克尔

我有以下常规XML文件:

<root>
    <Items>
        <Item>
            <tag1>text1</tag1>
            <tag2>text2</tag2>
            <tag3>text3</tag3>
        </Item>
        <Item>
            <tag1>text1</tag1>
            <tag2>text4</tag2>
            <tag3>text5</tag3>
        </Item>
    </Items>
</root>

我想获取文本等于的所有节点(全部<Item>,然后打印其所有其他标签<tag1>text1<tag2>

我从这开始,但是努力寻找TODO'S的答案:

try {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document doc = builder.parse(("\URI\file.xml"));
    XPathFactory xPathfactory = XPathFactory.newInstance();
    XPath xpath = xPathfactory.newXPath();
    //TODO: Is this correct query?
    XPathExpression expr = xpath.compile("//root//Items//Item//tag1[contains(., 'text1')]");
    NodeList nl = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
    for (int i=0; i<nl.getLength(); i++) {
        //TODO: How to iterate over all matched <Item> and get their <tag2>, <tag3> etc.?
    }
} catch (Exception e) {e.printStackTrace();}

谢谢,

尼尔·麦圭根

您可以使用Chrome开发者工具$x("path")功能来测试XPath。真的很简单。它也适用于最新的Firefox。

我用您提供的文本制作了一个HTML文件,然后在Chrome中打开了它。在控制台中,键入$x("/some-path")以测试内容。

  1. 获取物品:

    //Item
    
  2. 其中tag1文本等于text1:

    //Item/tag1[.='text1']
    
  3. 获得以下是tag2的同级兄弟:

    //Item/tag1[.='text1']/following-sibling::tag2
    

如果您想要商品而不是tag2:

//Item[ ./tag1[.='text1']/following-sibling::tag2 ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Neo4j 2.0.x中的Java API查找具有特定标签的所有节点?

来自分类Dev

删除两个特定标签之间的所有字符(java regex)

来自分类Dev

删除两个特定标签之间的所有字符(java regex)

来自分类Dev

jQuery XML解析:选择包含具有特定值的特定标签的所有节点

来自分类Dev

Java Selenium XPath-在特定元素下获取所有元素

来自分类Dev

如何找到具有特定标签的方式成员的点周围的所有节点?

来自分类Dev

Rails充当标签,获取具有特定标签的所有相关对象

来自分类Dev

如何从具有特定类名的特定标签中获取文本值?

来自分类Dev

遍历具有特定标签号的所有UITextViews

来自分类Dev

如何在特定标签内的xml中获取所有嵌套标签和文本?

来自分类Dev

Neo4j-具有所有带有特定标签的节点的路径(标签上的操作)

来自分类Dev

获取所有类别,其中至少一篇帖子具有特定标签

来自分类Dev

AS3 / XML-如何获取具有值为X的特定标签的节点列表

来自分类Dev

使用 java 和 Xpath 获取 xml 的所有属性

来自分类Dev

如何在Java中获取属于具有特定属性的另一个标签的XML标签?

来自分类Dev

如何从具有带有已知文本的标题标签的Div中获取Table元素-使用Selenium和Java

来自分类Dev

XPath选择Java中具有指定名称的文档中的所有节点

来自分类Dev

使用XPath的lapply()在特定标记不起作用后获取所有文本

来自分类Dev

Java jsoup解析特定标签

来自分类Dev

在带有美丽汤的特定标签后获取文本

来自分类Dev

使用SQL获取特定标签的所有帖子

来自分类Dev

使用SQL获取特定标签的所有帖子

来自分类Dev

仅当具有特定标签时才获取记录

来自分类Dev

如何从MySQL获取具有特定标签的文章

来自分类Dev

如何分区Java列表以获得具有特定条件的列表和其他所有相交的列表?

来自分类Dev

XPATH-如何获取具有特定属性的任何节点类型的所有text()元素

来自分类Dev

从特定标签获取文本

来自分类Dev

使用python访问和打印具有文本文件中相应标签元素的特定标签

来自分类Dev

XPath:返回一组具有相同类型的标签内的特定标签的索引

Related 相关文章

  1. 1

    如何使用Neo4j 2.0.x中的Java API查找具有特定标签的所有节点?

  2. 2

    删除两个特定标签之间的所有字符(java regex)

  3. 3

    删除两个特定标签之间的所有字符(java regex)

  4. 4

    jQuery XML解析:选择包含具有特定值的特定标签的所有节点

  5. 5

    Java Selenium XPath-在特定元素下获取所有元素

  6. 6

    如何找到具有特定标签的方式成员的点周围的所有节点?

  7. 7

    Rails充当标签,获取具有特定标签的所有相关对象

  8. 8

    如何从具有特定类名的特定标签中获取文本值?

  9. 9

    遍历具有特定标签号的所有UITextViews

  10. 10

    如何在特定标签内的xml中获取所有嵌套标签和文本?

  11. 11

    Neo4j-具有所有带有特定标签的节点的路径(标签上的操作)

  12. 12

    获取所有类别,其中至少一篇帖子具有特定标签

  13. 13

    AS3 / XML-如何获取具有值为X的特定标签的节点列表

  14. 14

    使用 java 和 Xpath 获取 xml 的所有属性

  15. 15

    如何在Java中获取属于具有特定属性的另一个标签的XML标签?

  16. 16

    如何从具有带有已知文本的标题标签的Div中获取Table元素-使用Selenium和Java

  17. 17

    XPath选择Java中具有指定名称的文档中的所有节点

  18. 18

    使用XPath的lapply()在特定标记不起作用后获取所有文本

  19. 19

    Java jsoup解析特定标签

  20. 20

    在带有美丽汤的特定标签后获取文本

  21. 21

    使用SQL获取特定标签的所有帖子

  22. 22

    使用SQL获取特定标签的所有帖子

  23. 23

    仅当具有特定标签时才获取记录

  24. 24

    如何从MySQL获取具有特定标签的文章

  25. 25

    如何分区Java列表以获得具有特定条件的列表和其他所有相交的列表?

  26. 26

    XPATH-如何获取具有特定属性的任何节点类型的所有text()元素

  27. 27

    从特定标签获取文本

  28. 28

    使用python访问和打印具有文本文件中相应标签元素的特定标签

  29. 29

    XPath:返回一组具有相同类型的标签内的特定标签的索引

热门标签

归档