当前位置: 首页 > 知识库问答 >
问题:

用XPath在递归父子中查找一组元素

衡建中
2023-03-14

我需要在一个xml文件中找到一个子节点,它位于递归父子属性中。下面是一个xml示例:

<root>
    <element>
        <nodeA>
            <nodeB>
                <nodeA>
                    <nodeB>
                        <nodeA>
                            <nodeB></nodeB>
                            <nodeB></nodeB>
                            <nodeB></nodeB>         
                        </nodeA>
                    </nodeB>
                    <nodeB>
                        <nodeA>
                            <nodeB></nodeB>
                            <nodeB></nodeB>                     
                        </nodeA>            
                    </nodeB>
                    <nodeB>
                        <nodeA>
                            <nodeB></nodeB>                     
                        </nodeA>            
                    </nodeB>                        
                </nodeA>
            </nodeB>
            <nodeB>
                <nodeA>
                    <nodeB>
                        <nodeA>
                            <nodeB></nodeB>                     
                        </nodeA>
                    </nodeB>            
                </nodeA>            
            </nodeB>
        </nodeA>
    </element>
</root>

//NodeB[不(nodeA)]

但是我需要选择第一个(并且只选择第一个)nodeB组,而没有nodeA子组,实际上是上面示例中nodeB的前三次出现。

共有1个答案

邰棋
2023-03-14

使用您已经得到的查询,您离您想要的只有几步之遥了。

//nodeB[not(nodeA)]开始,您希望上升到父节点/..,但您只希望第一组的父节点(//nodeB[not(nodeA)]/..)[1],当然您希望节点没有子节点,最终结果为:

(//nodeB[not(nodeA)]/..)[1]/nodeB[not(nodeA)]
 类似资料:
  • 我有TreeNode类——非二叉树(

  • 我想从网站上提取一些赔率: https://www.oddsportal.com/soccer/europe/champions-league-2015-2016/real-madrid-manchester-city-dhjzn1pn/#1x2;2

  • 非常感谢您的帮助。 我想知道firebug复制xpath是否总是适用于webdriver。 我有一个带有列表的页面,我可以获得完整的xpath来查找前两个元素,但无法对3、4执行相同的操作。 对于第三个,它不起作用: 错误: org.openqa.selenium.NoSuchElementException:无法定位元素:{"method":"xpath","selector":"/html/b

  • 问题内容: 我有这个架构 样本数据 SQL Fiddle演示。我已经插入了一些示例数据。 查兰芝 我需要找到唱片标题的所有父母。如何仅通过一个查询就可以获取所有父母? 我的意思是我需要这个结果: 期望的输出 假设我想使用其所有父项来获取条目,并且要使用where条件,那么它应该获取上述记录。 问题答案: 演示版

  • 我一直在为这个selenium项目苦苦挣扎,一直在寻找与这个问题略有关联的老参考资料或帖子。我承认我不熟悉xpath和selenium,所以希望它可以像修复语法一样简单。我正在使用python 3.6。卢本图19.10上的9,如果这有什么区别的话。 我试图访问的html元素: 我尝试过的代码: 尝试不同的XPath时出现的错误消息: 我检查了火狐来尝试捕获xpath,显示为: 虽然我还不确定如何调