我有以下简单的XML文档:
<?xml version="1.0" encoding="UTF-8"?>
<cars>
<car>
<data attrib="Make">
<text>Volvo</text>
</data>
<data attrib="Model">
<text>855</text>
</data>
</car>
<car>
<data attrib="Make">
<text>Volvo</text>
</data>
<data attrib="Model">
<text>745</text>
</data>
</car>
<car>
<data attrib="Make">
<text>Volvo</text>
</data>
<data attrib="Model">
<text>V70R</text>
</data>
</car>
</cars>
Run Code Online (Sandbox Code Playgroud)
以下XPath:
/cars/car/data[(@attrib='Model') and (text='855')]
Run Code Online (Sandbox Code Playgroud)
这将返回以下结果:
<data attrib="Model"><text>855</text></data>
Run Code Online (Sandbox Code Playgroud)
我希望XPath返回<car>
匹配的整个块.
所以返回数据将是这样的:
<cars>
<car>
<data attrib="Make">
<text>Volvo</text>
</data>
<data attrib="Model">
<text>855</text>
</data>
</car>
</cars>
Run Code Online (Sandbox Code Playgroud)
我如何修改上面的XPath表达式来实现这一目标?
Utk*_*nos 14
XPath会返回你要去的任何节点 - 在你要去的情况下data
,这就是你要回来的东西.如果你想要car
,请在之后放置谓词car
.
/cars/car[data/@attrib='Model' and data/text='855']
Run Code Online (Sandbox Code Playgroud)
或者,稍短
/cars/car[data[@attrib='Model' and text='855']]
Run Code Online (Sandbox Code Playgroud)
您可以在此XMLPlayground上运行它.
XQuery生成所需的输出:
<cars>
{/cars/car[data[@attrib='Model' and text='855']]}
</cars>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19707 次 |
最近记录: |