2012-04-03 12 views
0

指定された各親ノードに1つの指定された子ノードがあるかどうかをテストしようとしています。たとえば、次のxmlがあります。すべての親ノードに必要な子ノードがあることを確認するXPath

<feed> 
    <entry> 
    <cacheId/> 
    </entry> 
    <entry> 
    // missing cacheId 
    </entry> 
</feed> 

2番目のエントリノードには、子のキャッシュIDノードがありません。すべてのエントリの親ノードに1つのcacheIdノードがある場合は、全体的なtrue/falseのどちらかが必要です。 cacheIdノードがある場合は、各エントリノードのtrue/falseのリスト。

上記のxmlのために、私はfalseまたはリスト(真、偽)のいずれかが必要です。

答えて

4

XPath 2.0では、ブール値のシーケンスを得ることができます:/feed/entry/boolean(cacheId)。 XPath 1.0では、not(boolean(/feed/entry[not(cacheId)]))に制限されています。

+0

XPathの伝説であるマーティン・ホーネンが私をパンチに打つ。私は謙虚に敗北を受け入れる。 – JWiley

+0

@jdwilemo:あなたの勝利のための何が、何もない? – MattH

+0

@MattH彼が実際に私の貧弱な1+を必要とするかのように、しかし確かに。 – JWiley

関連する問題