2011-02-07 7 views
0

ここにXMLがあります。今私は、/ホーム/カバレッジ/カバレッジ/識別子/カバレッジ名= 'WorkersCompensation'を値として持つすべての/ホーム/識別子/ HomeNumber値を選択したいと思います。私はこのフォーラムでいくつかの答えを尋ねてみましたが、それでも問題はありません。私はXPATH式を構築するのに助けが必要です。XPATH - 他のタグの値に基づいて1タグの値を選択する方法

<Home> 
     <Identifier> 
      <HomeNumber>1</HomeNumber> 
     </Identifier> 
<Coverages> 
      <Coverage busStatus="Active"> 
      <Identifier> 
       <CoverageName>PersonalLiability</CoverageName> 
      </Identifier> 
      </Coverage> 
      <Coverage> 
      <Identifier> 
       <CoverageName>WorkersCompensation</CoverageName> 
      </Identifier> 
      <Detail> 
       <Name>NumberOfInServants</Name> 
       <Value> 
       <Integer>1</Integer> 
       </Value> 
      </Detail> 
      </Coverage> 
     <covergaes> 
</Home> 
<Home> 
. 
. 
. 
</Home> 

答えて

4

あなたはほとんどそれを自分で書かれている:

/*/Home[Coverages 
      /Coverage 
      /Identifier 
       /CoverageName 
     = 'WorkersCompensation'] 
     /Identifier 
     /HomeNumber 

:あなたが何かを言うならば、私は私の答えを削除を検討します:私は

5

それが動作かどうかと、私は実際にそれをテストする時間を持っていない場合、私は100%わからないんだけど

/*/Home[Coverages/Coverage/Identifier/CoverageName='WorkersCompensation']/Identifier/HomeNumber 

を試してみてください。それがうまくいくなら、なぜ私がこの答えを後で与えたのかの説明を投稿します。

+0

@Daveが...もちろん、いくつかのルート要素を期待します**これは絶対的な表現です** ** ... –

+0

私はそれを今やります。 – Dave

+0

@Dave:この回答は*正しい*ではありません - 単一の(またはまったくない)要素だけを選択しますが、OPは多くの要素を選択する必要があります。 @Alejandroの発言を理解してください。あなたの答えで正しいことをしてください。 –

関連する問題