是否有一种XPath方法使用XPath查询直接恢复XML节点的前一个兄弟节点的一个特定属性?
在下面的示例中,我想检索在标有该元素的元素之前的alt每个img节点的属性值.divid=marker
<content>
<img alt="1" src="file.gif" />
<img alt="2" src="file.gif" />
<img alt="3" src="file.gif" />
<img alt="4" src="file.gif" />
<div id='marker'></div>
</content>
Run Code Online (Sandbox Code Playgroud)
对于此示例,我想检索值1 2 3 4.
我使用以下XPath查询
//div[@id='marker']/preceding-sibling::img
Run Code Online (Sandbox Code Playgroud)
为了检索我想要的节点列表
<img alt="1" src="file.gif"/>
<img alt="2" src="file.gif"/>
<img alt="3" src="file.gif"/>
<img alt="4" src="file.gif"/>
Run Code Online (Sandbox Code Playgroud)
由于它是一个节点列表,我可以在节点上迭代以检索我正在寻找的属性值,但是有一种XPath方式吗?我原以为能够写下这样的东西:
//div[@id='marker']/preceding-sibling::img@alt
or //div[@id='marker']/preceding-sibling@alt::img
Run Code Online (Sandbox Code Playgroud)
但是,一旦你使用了XPath Axe类似的兄弟姐妹,我甚至不知道是否可能.
用途:
//div[@id='marker']/preceding-sibling::img/@alt
这将选择属性具有值的某个元素(XML文档中的任何位置)的兄弟节点之前alt的所有img元素的所有属性(属性节点)名称.divid'marker'
在XPath 2.0中,您甚至可以获得一系列字符串,这些字符串是这些alt属性的值:
//div[@id='marker']/preceding-sibling::img/@alt/string()
| 归档时间: |
|
| 查看次数: |
6470 次 |
| 最近记录: |