使用XPATH查找具有特定属性的元素



我有以下XML文档。我想在XPath中构建一个查询,以查找1917年之前下水的船只的所有船只元素

<Ships>
<Class name="Kongo">
<Ship name="h" launched="1915"/>
<Ship name="h1" launched="1920"/>
</Class>

<Class name="Kongo2">
<Ship name="h2" launched="1941"/>
<Ship name="h3" launched="1941"/>
</Class>
<Class name="Kongo2">
<Ship name="h4" launched="1917"/>
<Ship name="h5" launched="1917"/>
</Class>

</Ships>



我提出了以下Xpath:if(/Ships/Class/Ship/number(@launched) < 1917) then Ships/Class/Ship else ()
但这列出了所有Ship元素,即使有if复选框。这可能有什么问题?

您可以使用这样的谓词(只需要XPath-1.0(:

/Ships/Class/Ship[1917 > @launched]

谓词表达式被反转以避免小于字符的<,这在某些上下文中是有问题的。但语义与@launched < 1917中的相同。

最新更新