2011-03-04 22 views
0

XMLの "job"が "Actor"で、 "order"が "0"と "4"のキャストメンバーを返すXPathクエリを作成します。私は両方を行うクエリを作成することが難しいと思っています。属性に関するXPathの検索

<cast> 
    <person name="David Silverman" character="" job="Director" order="0"/> 
    <person name="James L. Brooks" character="" job="Author" order="0"/> 
    <person name="Dan Castellaneta" character="Homer J. Simpson" job="Actor" order="0"/> 
    <person name="Julie Kavner" character="Marge Simpson" job="Actor" order="1"/> 
    <person name="Nancy Cartwright" character="Bart Simpson" job="Actor" order="2"/> 
    <person name="Yeardley Smith" character="Lisa Simpson" job="Actor" order="3"/> 
    <person name="Dan Castellaneta" character="Krusty the Clown" job="Actor" order="4"/> 
    <person name="Hank Azaria" character="Moe Szyslak" job="Actor" order="5"/> 
    <person name="Dan Castellaneta" character="Apu Nahasapeemapetilon" job="Actor" order="6"/> 
</cast> 

答えて

3
cast/person[@job="Actor" and @order >= 0 and @order <= 3] 

あなたが望む4つのシンプソンズを返します。

+0

ありがとう私はそれを試してみましょう。 – RonanC

+0

それは治療をしました.....とてもシンプルで、私はとてもばかげています。本当にありがとう。大きな助け – RonanC

0

あなたは//cast/person[@job='Actor' and position()<3]を使用することができます。

+0

おかげで多くのことを組み合わせることができるはずです。私はjob属性にアクセスするために@jobを使用していることに気付いていますが、同じ条件で[@order> = '0'と@order <= '4']のさらなる制約を指定することが可能かどうか疑問に思います – RonanC

+0

@ user644347私はXPathを初めて使いました。私は他の2つのソリューションが 'position'ではなく' order'を使用していることに気付きました。あまり正しい解決策ではありません。誰でも私にそれを説明する?ありがとう。 – alex

0

あなたの述語迅速な対応のための//cast/person[@job='Actor' and @order>=0 and @order<=3]