0

Web ページの ul タグと p タグ内のすべてのテキストを選択しようとしています。両方を同時に選択するのは難しいと思います。問題なく個別に選択できます。これが私がこれまでに試したことです:

('//p and ul');
('//p::ul');

また、特定のリストを選択しようとしています。Web ページには複数のリストがありますが、私が興味を持っているのは 1 つだけです。特定のIDを持つタグ内にあるページ上のすべてのリストを選択するにはどうすればよいですか?

<div id="thisistheid"
<ul....

助けてくれてありがとう。

4

2 に答える 2

1

私のコメントで述べたように、を使用する必要があると思いますが//p and //ul、よくわかりません。

ただし、2番目の質問には確かに答えることができます。は、 の子孫である場合にのみ//div[@id='thisistheid']//ulを選択します。の代わりに使用して、1 レベルの深さのみを許可することもできます (ネストされたリストがある場合に役立ちます)。ul#thisistheid/ul//ul

于 2013-11-03T14:21:02.143 に答える
1

And と Orはブール式です。

and 式は、各オペランドを評価し、boolean 関数を呼び出したかのようにその値を boolean に変換することによって評価されます。両方の値が true の場合、結果は true になり、それ以外の場合は false になります。左のオペランドが false と評価された場合、右のオペランドは評価されません。

ノードが同時に P と UL の両方になることはできないため、テストで true が返されることはありません。

代わりにUnion 演算子 ( PathExpression ) を試してください。

//p | //ul

これにより、ドキュメント内のすべての p 要素と ul 要素が得られます

特定の ID を持つノードを取得するには、 id() 関数を使用できます。

id('thisistheid')

これが何らかの理由で機能しない場合でも、属性テストを使用できます。

//div[@id='thisistheid']

または、DOM APIを使用している場合は、getElementById().

http://schlitt.info/opensource/blog/0704_xpath.htmlで、わかりやすい XPath チュートリアルを見つけることができます。

于 2013-11-03T14:20:33.563 に答える