我希望获得“Package”节点,其中“System”孙子具有“mtm”属性,“mtm”属性的值为“2055”。对于以下示例文档,只应返回第一个Package节点。
我用
"/Database/Package[/SystemCompatibility/System[@mtm='2055']]"
但它不起作用。这个表达有什么问题?
<?xml version="1.0" encoding="UTF-8"?>
<Database version="300">
<Package id="6imb05ww" description="ThinkPad Modem Adapter">
<SystemCompatibility>
<System mtm="8742" os="Windows XP" oslang="en" />
<System mtm="2055" os="Windows XP" oslang="jp" />
</SystemCompatibility>
</Package>
<Package id="6imb06ww" description="ThinkPad Modem Adapter">
<SystemCompatibility>
<System mtm="3046" os="Windows XP" oslang="en" />
</SystemCompatibility>
</Package>
</Database>
答案 0 :(得分:13)
删除/
SystemCompatibility
/Database/Package[SystemCompatibility/System[@mtm='2055']]
答案 1 :(得分:2)
尝试使用:
/Database/Package/descendant::System[@mtm='2055']
使用descendant :: operator将允许您获取Package的任何System孙子。 http://www.w3schools.com/xpath/xpath_axes.asp