【问题标题】:XPath - select all nodes which are only child of typeXPath - 选择所有类型的唯一子节点
【发布时间】:2014-05-26 19:24:55
【问题描述】:

我有类似的东西:

<fieldset>
    <field name='field1'></field>
</fieldset>
<fieldset>
    <field name='field2'></field>
    <field name='field3'></field>
</fieldset>
<fieldset>
    <field name='field4'></field>
    <text></text>
</fieldset>

我想选择所有field 类型的唯一子节点field

即。 field1 匹配,field4 也匹配(text 节点不是 field 类型)。

我无法使用 sibling 使它工作,这也不是:

//fieldset/field[not(count(../field))&gt;1]

【问题讨论】:

  • @alecxe 已经给了你答案,但是你当前的表达不起作用的原因是你的括号放错了地方。应该是//fieldset/field[not(count(../field)&gt;1)]

标签: xml xslt xpath xml-parsing lxml


【解决方案1】:

您可以使用//fieldset[count(field)=1]/field xpath 表达式。

使用xmllint的演示:

$ xmllint input.xml --xpath '//fieldset[count(field)=1]/field'
<field name="field1"/>
<field name="field4"/>

【讨论】:

    猜你喜欢
    • 2011-06-13
    • 1970-01-01
    • 2012-06-24
    • 2014-07-06
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多