質問

XMLとXPathクエリがあります。 Yahoo!を使用していますウィジェットなので、XPath 1.0を使用しています。

これが私のXMLの要点です...

<root>
    <cat num="SOURCE">
        <movie>
            <swf>speak.swf</swf> 
            <width>250</width> 
            <height>150</height> 
            <colour>cccccc</colour> 
        </movie>
        <movie>
            <swf>inertia.swf</swf> 
            <width>380</width> 
            <height>130</height> 
            <colour>9a9a9a</colour> 
        </movie>
        <movie>
            <swf>swing.swf</swf> 
            <width>380</width> 
            <height>130</height> 
            <colour>9A9A9A</colour> 
        </movie>
        ....

今...このクエリを実行すると:

"root/cat/movie/swf"

42個の結果が得られ、すべての「swf」ノードが正しい。

ただし、6番目のものが必要な場合は、次の操作を実行できます。

"root/cat/movie/swf[6]"

しかし、0個のノードを含むリストを取得します。

奇妙なことに、[1](および他の値なし)を使用すると、42個すべてのノードのリストが得られます。

明らかに、ここには非常に基本的なものがありません。誰もがそれを見ていますか?

役に立ちましたか?

解決

どういう意味なのかしら:

"root/cat/movie[6]/swf"

(6番目の映画のswfを取得)

または別の方法:

"(root/cat/movie/swf)[6]"

(movie / swf要素をすべて見つけ、6番目を選択します)

各ムービーにswfが1つだけある場合、2つは同じです。ムービーに0個または複数のswf要素がある場合、2つのクエリは微妙に異なります...

他のヒント

"root/cat/movie/swf[6]"

は、<swf>コンテキストの各6番目の"root/cat/movie"ノードを指します。

各<=>ノードは1つのみです。

あなたの言いたいことは:

"root/cat/movie[6]/swf"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top