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