2

XPath を使用して、ノードがフォーム タグ内にあるかどうかを判断するにはどうすればよいですか? 私はその祖先/先行のフォームタグを見つけようとしていると思います(しかし、私はそれを機能させることができませんでした)。

例 1:

<form id="doNotKnowIDofForm">
<div id="level1">
    <span id="mySpan">someText</span>
</div>
</form>

例 2:

<form id="doNotKnowIDofForm">
   This is a closed form.
</form>
<div id="level1">
    <span id="mySpan">someText</span>
</div>
</form>

xpath"//span[id='mySpan']"を使用してスパン ノードを見つけることができます。しかし、mySpan がフォーム内にあるかどうかを知りたい (フォームの ID がわからない)。私は試してみまし"//span[id='mySpan']/preceding::form/""//span[id='mySpan']/ancestor::form/"

前もって感謝します。

EDIT : XPath で Example1 では myForm フォーム タグを選択するようにしたいのですが、Example2 では選択しません

4

3 に答える 3

2

form要素を選択しようとしているのか、要素を選択しようとしているのか、あなたの説明から100%確信が持てませんspan。あなたが に行く可能性が高いと思われるformので、最初にそれについて説明します。

最後にスラッシュがなければ、XPath はancestor::form問題ありませんでしたが、必要以上に回り道しています。これはより良い方法だと思います:

//form[.//span/@id = 'mySpan']

またはこれ:

//form[descendant::span/@id = 'mySpan']

特定のノードがフォーム内にある場合にのみ特定のノードを見つける XPath を生成するにはancestor::form、述語内に次のように記述します。

//span[@id = 'mySpan' and ancestor::form]

または、これを行うことができます。これもより簡単です。

//form//span[@id = 'mySpan']
于 2013-01-20T18:52:54.460 に答える
1

あなた自身の試み

//span[id='mySpan']/ancestor::form/

私にはうまく見えます。

于 2013-01-20T22:13:29.207 に答える
0

あなたは単に使用することができます、

"form//span[id='mySpan']"

于 2013-01-20T18:53:00.123 に答える