2017-01-01 17 views
0

新しい年!私は属性が(特定の文字列で始まるしている特定の名前(例えばval)でXPath:属性名と属性値の一部の後ろのフィルタ

  • との任意のノードのdoc

  • でeverywere

    • を見つけるしたいと思います

      例えばp)

    • これらの属性値は特定の規則(例:> 5)に一致します

    私は最後の要件(ATTR-値)なしですべてを行い

    //val/@*[starts-with (name(),'p')] 
    

    を試してみました。

    私は

    //val/@*[starts-with (name(),'p') and val()>5] 
    

    のようなものと考えるが、私は属性値にアクセスするための機能を知りません。

    助けてくださいか?ありがとう!!

    クリス

  • 答えて

    2

    あなたは、現在のコンテキストノードへの参照であるドット(.)、を探しています:

    //val/@*[starts-with(name(),'p') and .>5] 
    

    demo

    入力XML:

    <root> 
        <val>foo</val> 
        <val p="9">bar</val> 
        <val p="4">baz</val> 
    </root> 
    

    出力:

    p="9" 
    
    関連する問題