选择 xQuery 中的第 n 个子元素/选择下一个元素
我很难找到好的 xQuery 教程,基本上我想做的是从这个 html 节点检索文本 etc...
<div class="venue">
<div class="vitem">
<p style="padding: 6px 0pt 0pt;" class="label">ADDRESS:</p>
<p class="item-big">blabla</p>
</div><br class="clear">
<div class="vitem">
<p style="padding: 6px 0pt 0pt;" class="label">PHONE:</p>
<p class="item-big">123</p>
</div><br class="clear">
<div class="vitem">
<p style="padding: 6px 0pt 0pt;" class="label">WEB:</p>
<p class="item-big">etc...</p>
</div><br class="clear">
</div>
我想知道如何从第三个中的第二个 p div[@class="vitem"]
或者直接跟在 p[@class="label"]
之后的 p包含文本 WEB:
<强>编辑:答案已经有很大帮助,但是我的第二个问题是如果布局更改为这样的方式
<div class="venue">
<div class="vitem">
<p style="padding: 6px 0pt 0pt;" class="label">ADDRESS:</p>
<p class="item-big">blabla</p>
</div><br class="clear">
<div class="vitem">
<p style="padding: 6px 0pt 0pt;" class="label">WEB:</p>
<p class="item-big">etc...</p>
</div><br class="clear">
</div>
我如何获得 etc...
,只知道它遵循ap 的类标签包含文本 WEB:
?它不再位于 div[3]/p[2] 中,
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用:
这意味着:获取所有
divp
子节点的所有文本节点子节点code> 元素,其属性class
的值为"vitem"
并且是顶部元素的子元素。使用:
这意味着:获取任何
p
的所有文本节点子节点>p 元素,其class
属性值为"label"
,它是所有具有div
元素的第三个子元素属性class
,其值为"vitem"
并且是顶部元素的子元素。更新:OP添加了第二个问题:他只想选择具有文本“etc...”作为字符串值的
p
使用< /强>:
Use:
This means: get all the text node children of the second
p
child of the third of alldiv
elements that have an attributeclass
with value"vitem"
and that are children of the top element.Use:
This means: get all the text node children of the first following-sibling
p
of anyp
element withclass
attribute with value"label"
, that is a child of the third of alldiv
elements that have an attributeclass
with value"vitem"
and that are children of the top element.UPDATE: The OP has added a second question: he wants just to select the
p
that has as a string value the text "etc..."Use:
语义上相等的 XPath/ XQuery 表达式是:
或者
The semantically equal XPath/XQuery expressions are:
Or