2009-07-27 3 views
1
<?xml version="1.0" encoding="UTF-8"?> 
<Country> 
    <States> 
    <County> 
     <popularity>39</popularity> 
     <name>Orange</name> 
     <id>13811</id> 
     <url>http://www.url.gov</url> 
     <overview>Orange County Overview</overview> 
     <Cities> 
     <City name="City #1" size="big" population="33333"/> 
     <City name="City #2" size="medium" population="2222"/> 
     <City name="City #3" size="Small" population="111"/> 
     </Cities> 
    </County> 
    </States> 
</Country> 

上記のXMLの[choose] [cities]の[name] = 'Orange'と同等のXPath式は何ですか?XPath |パスの式.Net

編集07/27/09午後12時29分AM PST:

私はそれを得ました! アドバイスをいただきありがとうございます、あなたは偉大な先生です。 私はカッコ[../name="Orange"]で述語がwhere句とほぼ同じである

/Country/States/County[name='Orange']/Cities/City

+0

どの要素を選択したいのか、どの要素/属性をフィルタリングするのかを明確にすることはできますか? (要素のすべてか、または要素のすべてが必要ですか? –

+0

すべてからすべての属性を1つずつ取得したいと考えていました。あなたの返信に感謝します。 –

答えて

0

//*[name="Orange"]/Cities/*

1

//Cities[../name="Orange"]/*

ですべての「市」からのすべての属性を選択することができました。

+1

/Country/States/County/Cities[../name='Orange ']より良いでしょう。二重スラッシュはひどく非効率的です。サンプル文書では大したことではありませんが、大きな文書では完全なツリースキャンを排除するのに役立ちます。 –

+0

"ダブルスラッシュはひどく非効率的です"?私の経験上、dependents()演算子は、XML要素の全体のパス名を調べるのに比べてかなり効率的です。ただし、XPath実装で使用されるインデックスによって異なります。 – vog