gpt4 book ai didi

javascript - 请更正这个 xpath 表达式

转载 作者:行者123 更新时间:2023-11-28 02:54:00 25 4
gpt4 key购买 nike

这是我的 XML 文档的一部分:

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<mfVictor>
<decal>
<company>Victor</company>
<title>Wood Horn with Blue Background</title>
<image>
<url>victor01.jpg</url>
<width>60</width>
<height>60</height>
<name>Wood Horn Blue Background</name>
<link></link>
</image>
<price>$15.00</price>
<instock>In Stock</instock>
<notes>none</notes>
</decal>
</mfVictor>
</catalog>

我有一个函数可以从每个“标题”元素生成文本列表。那么,我想在每个列表项的 onmousedown 上导航到“贴花”并访问它的所有子项。到目前为止我有这个:

//decal[contains(.,\'"+itemName+"\')]

其中 itemName 是传递给函数的 this.innerHTML。看起来贴花已被访问,因为在 console.log 中我可以看到长度为 1 的 XML 对象。但我不知道如何访问“decal”的子代或“title”的同级。

感谢您的阅读。

最佳答案

如果您需要根据他的头衔选择贴花,我更喜欢以下 xpath:

//decal/title[contains(.,\'"+itemName+"\')]/parent::node()
//decal/title[contains(.,\'"+itemName+"\')]/..
//decal[title[contains(.,\'"+itemName+"\')]]

要选择您选择的贴花标题的同级,您可以使用

//decal/title[contains(.,\'"+itemName+"\')]/following-sibling::*

如果您想要您选择的贴花的所有子项,您可以使用(也许您需要这个)

//decal[title[contains(.,\'"+itemName+"\')]]/child::*

或者更好,如果你有完整的标题

//decal[title[text()=\'"+itemName+"\']]/child::*

使用方括号,您可以指示解析器遍历 xml 树,以根据您指定的条件进行选择,但不更改上下文节点。将方括号视为橡皮筋,一旦其中包含的测试得到满足,解析器就会恢复到起始节点并评估 xpath 表达式的其余部分。前两个示例是典型的

关于javascript - 请更正这个 xpath 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com