2011-09-29 43 views
5

xpathを使用して、ノードの親ノードの直後の兄弟(叔父または蟻)ノードをテストしています。xpathで親の直後の兄弟を確認する方法

私のxml今すぐ

、私は子ノードB用のテンプレートマッチに、と私は私の親のimmeididate以下-兄弟が「おじさん」と呼ばれているかどうかをテストしたい

<MyParent> 
<A> 
<B> 
<C> 
</MyParent> 

<Uncle> 
.. 
</Uncle> 

のように見えます

<xsl:if test="parent::MyParent/following-sibling::*[1][self::Uncle]"> 
    <xsl:text>we have it</xsl:text>   
</xsl:if> 

<xsl:if test="parent::MyParent[following-sibling::*[1][self::Uncle]]"> 
    <xsl:text>we have it</xsl:text>   
</xsl:if> 
012:

私は、次の2つのXPathを試してみました

どちらも問題なく動作しますが、専門家が間違いを犯した箇所のデバッグを助けることができますか?ありがとう:)

+2

コードが正しいように見えます。おそらくそれはあなたが思っている文脈で実行されていないでしょうか?おそらく、私たちが確認できるように、あなたのスクリプトをもっと共有することができます。 –

+0

@_Robert:あなたのコードが望ましい出力を生成しないが、受け入れられた答えがそうであれば、これはあなたが(デフォルトの)名前空間の問題を持っている可能性が高いです。 –

答えて

14

これを試してください。

../following-sibling::*[position()=1][name()='Uncle'] 
関連する問題