代码之家  ›  专栏  ›  技术社区  ›  dacracot

需要一个XPath来检查任何子、孙子或曾孙等的属性值

  •  2
  • dacracot  · 技术社区  · 14 年前

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
        <tree dah="false">
            <tree dah="false">
                <tree dah="false"/>
                <tree dah="false"/>
            </tree>
            <tree dah="false">
                <tree dah="true"/>
                <tree dah="false"/>
            </tree>
        </tree>
    </root>
    

    …我需要一个计算结果为true的XPath,因为至少有一个树/@dah='true'。

    但是如果XML看起来像这样的话,那么结果将是错误的。。。

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
        <tree dah="false">
            <tree dah="false">
                <tree dah="false"/>
                <tree dah="false"/>
            </tree>
            <tree dah="false">
                <tree dah="false"/>
                <tree dah="false"/>
            </tree>
        </tree>
    </root>
    

    2 回复  |  直到 14 年前
        1
  •  2
  •   Dimitre Novatchev    14 年前

    使用 :

    boolean(/root//tree[@dah='true'])
    

    boolean((/root//tree[@dah='true'])[1])
    

    这两个表达式是等价的

    结果是 true() 如果存在 tree dah 带值属性 false() .

        2
  •  1
  •   MooGoo    14 年前
    /root//tree[@dah='true']