0

わかりましたので、これは私が以前に尋ねた質問から継続して遭遇している問題です。

2 つのターゲット ノード間に無関係なノードを含む Xpath を形成する方法

以上が元の質問です。質問に答えてくれた人から答えが得られると思っていたのですが、できなかったので別途投稿します。

そのため、私が恐れていたように、より無関係なタグがターゲット ノードの間に表示されました。ターゲットタグとルートの間に無関係なタグが無限にある可能性があると思い込ませます。target/target2 と goal が常に存在することは確かです。

<body>
    <target>
         <annoying>
             ...
             <x>
                 <goal>Text I want to obtain</goal>
             </x>
             ...
         </annoying>
    </target>
    <target2>
         <noidea>
             ...
             <y>
                 <goal>Second Target I want to obtain</goal>
             </y>
             ...
         </noidea>
    </target2>
<body>

私は次のようなことが可能であることを望んでいました:

//body/target/[*/]*goal

目標を取得するための正規表現のように。ただし、Xpath のすぐ上の構文は適切な構文ではありません。

まだ target と target2 を区別する必要があるので、

//goal

私が望む結果を返してくれません。

ゴールを取得できるXpathはありますか?

4

3 に答える 3

1

すべての目標を取得するには、次を使用します。

//goal

ターゲット タグがある場合は、//必要な場合にのみ使用してください。パフォーマンスの観点から、その「演算子」は よりもはるかに悪いため/です。

/body/target//goal
于 2013-06-19T22:47:57.483 に答える
0
//target//goal

//target2//goal

トリックは、開始以外に // を使用できることに気づきませんでしたか

于 2013-06-19T22:47:44.580 に答える
0

Xpath軸はあなたが望むものです

descendant-or-self::goalノードで、現在のノードとその中にネストされているすべてのものから、目標の名前を持つすべてのノードを選択します。

于 2013-06-19T22:53:53.220 に答える