必要なクラスを選択するXPathがあります://div[@class='myclass']
。しかし、それはdiv全体を返します(<div class='myclass'>
も、しかし、タグ自体ではなく、このタグのコンテンツのみを返したいと思います。どうすればいいですか?
Xpathの場合、返されるものは、条件ではないパスの最後のものです。どういう意味?まあ、条件は_[]
_の間のものですが(あなたはすでにそれを知っています)、あなたの読み取りはpathElement [値 'my class'の 'class'属性を持っています]。 pathElementは_[
_の直前にあります。
_[]
_の外側のものはすべてパスなので、_//a/b/c[@blah='bleh']/d
_a、b、 cおよびdはすべてパス要素、blahは属性、blehリテラル値。このパスが一致する場合、d、最後の非条件物が返されます。
特定のパスは、(一連の)divを返します。これは、xpathのパスの最後のものです。したがって、この戻り値には、トップレベルノード、div、およびその下(それら)のすべての(それらの)子が含まれます。ノードは、要素またはテキスト(またはコメント、処理命令など)にすることができます。
ノードの下には複数のテキストノードが存在する可能性があるため、配列pOcHaが語っています。 x/text()
はxの直接の子であるすべてのテキストを返し、x/node()
はすべての子ノード、includeテキストを返します。
お役に立てれば。
node() = innerXml
text() = innerText
両方とも配列なので、text()[1]は最初の子テキストノードです...
古いよくある質問に対する新しい回答:
このXMLについて
<div class="myclass">content</div>
xPathを使用して、次の2つの方法のいずれかでcontent
のみを選択できます。
テキストNode Selection
このXPath、
//div[@class='myclass']/text()
要求されたdiv
要素、content
のテキストノードの子を選択します。
要素の文字列値
このXPath、
string(//div[@class='myclass'])
リクエストされたdiv
要素のcontent
の- string-value を返します。
詳細:ここに 注 の説明string-valuesの要素:
要素ノードの string-value は、すべてのテキストノードの string-value sを連結したものです descendants ドキュメント順の要素ノードの。