したいを参照して"次へ"としてまだ存在しない)XMLノードのシーケンス?

StackOverflow https://stackoverflow.com/questions/689291

  •  22-08-2019
  •  | 
  •  

質問

が拡大...

しているのか教えてくださいXML

<root>
    <list>
        <item value="9"/>
        <item value="3"/>
        <item value="1"/>
        <item value="8"/>
        <item value="4"/>
    </list>
</root>

私はXPath"/ルート/リスト/item[4]をまとめていきたいと思いますを取得する5'項目'要素が値の属性が4)

このことからXPath"/ルート/リスト/item[5]"を参考にしてい非存在しない)6項目です。

僕は、XPathの式を参照して"次へ"とい非existant)の"ゆるっと"したアイテムは'要素にかかわらず多くの項目があり、現在...

なっているのでしょうかこのパスを表す数現在の要素ではなくハードコード番号です。

思い思いがけないべきか---悔いが残っています。

更新:明らかに...たいと思い返し"の項目のノードの最後の項目のノード".属性あり区別する既存のノード).ぜひよろしくお願いします返却は空のnodeset.

更新:大学などが関わっていて、私の答えはないのだけを公正について説明します.説明くさんのご応募お待ちしています:)

基本的にはxPathがある。当期純なコードで書き込みアドレスよりも読み込みます。

していただくためには、xPathの非存在しない場所にEnsureNodeExists。(注:できないので変更すEnsureNodeExistsルーチン) コードの繰り返し処理を実行し各要素のxPathをするものであれば、これはその場として設定することで、親のになります。

このようにできますコード"/ルート/リスト項目の[position()=last()]/次-兄弟::【1】の"3回、この3項目のノードが作成されていきます。

役に立ちましたか?

解決

まずは、おXPath:

/root/list/item[4]

を取り出しの項目以降の [4] 述語表記 [position() = 4]).

を取得する項目 @value 4使用します:

/root/list/item[@value = '4']

したい場合は取得後にアイテム @value 4使用します:

/root/list/item[@value = '4']/following-sibling::item[1]

こととしての英語"からの /root/list/item@value = '4', は、以下の兄弟姉妹の名前の"ゆるっと"したアイテムやけて行動を起こしてみてください。

この作品が無い場合でも次の項目です。この場合、選択したノードセットは空文字列になります。

編集:この結果、上記の表現の生産予期せぬトラブルが起こる事がある場合は以上の値4.を取得しま すべての 項目を追跡する項目と値です。この戻ります一つのアイテム最大:

/root/list/item[@value = '4'][1]/following-sibling::item[1]

の最後のノードのリストを使用します:

/root/list/item[position() = last()]

素敵な映像を説明するの XPath軸 で、できるだけ早く送ってくださ http://nwalsh.com/docs/tutorials/xsl/xsl/graphics/axes.gif (一部の 大きなチュートリアル).

他のヒント

また表現を返す空のnodesetのいいと思いますように /parent::node(), は、空になっていますので、rootではない。

と思いなにができるように /root/list/item[position() = (last() + 1)], だが、やきと同じ結果として何をするにも返されないノード。んしさいってる国での生活を経験しました。

次のことを試してみてください--兄弟姉妹現

このようなもので こちらの

ればいいるので、これまで新しいノードの直後の最後に設定しており、おおよそMSXMLご利用いただけappendChildご親要素(リスト).が追加されますと最後の子の親ノードです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top