37

必要なクラスを選択する XPath があります: //div[@class='myclass']. しかし、それはdiv全体を返します(<div class='myclass'>また、タグ自体なしでこのタグのコンテンツのみを返したいのですが、どうすればよいですか?

4

4 に答える 4

44
node() = innerXml

text() = innerText

どちらも配列であるためtext()[1]、最初の子テキストノードも...

于 2012-06-05T14:08:39.247 に答える
35

xpath を使用すると、条件ではないパスの最後のものが返されます。それはどういう意味ですか?まあ、条件は の間[]のものです(しかし、あなたはすでにそれを知っていました)とあなたのものはpathElement[ that has a 'class' attribute with value 'my class' ]のように読み取ります。pathElement は の直前に来ます[

の外側のすべてのもの[]はパスであるため、//a/b/c[@blah='bleh']/d abc、およびdはすべてパス要素であり、blahは属性であり、blehはリテラル値です。このパスが一致すると、最後の非条件のものであるdが返されます。

特定のパスは、(一連の) divを返します。これは、xpath のパスの最後のものです。したがって、この戻り値には、トップレベルのノード、場合によってはdivが含まれ、その下にはすべての (それらの) 子が含まれます。ノードは、要素またはテキスト (またはコメント、処理命令など) にすることができます。

ノードの下には複数のテキスト ノードが存在する可能性があるため、配列 pOcHa について説明します。x/text()x の直接の子であるすべてのテキストを返し、テキストを含むx/node()すべての子ノードを返します。

于 2012-06-05T14:48:34.500 に答える
9

古いよくある質問に対する新しい回答:

この XML の場合

<div class="myclass">content</div>

contentXPath を使用して、次の 2 つの方法のいずれかで選択できます。

  1. テキスト ノードの選択

    このXPath、

    //div[@class='myclass']/text()
    

    は、要求に応じて、対象のdiv要素 のテキスト ノードの子を選択します。content

  2. 要素の文字列値

    このXPath、

    string(//div[@class='myclass'])
    

    は、要求に応じて、対象の要素 の文字列値を返します。divcontent

    詳細情報:要素の文字列値を説明するメモは次のとおりです。

    要素ノードのstring-valueは、要素ノードのすべてのテキスト ノードの子孫のstring-valueをドキュメント順に連結したもの です。

于 2017-10-06T19:42:44.453 に答える
4

あなたが試すことができます

//div[@class='myclass']/child::*

child::*コンテキスト ノードのすべての要素の子を選択します詳細を参照してください

于 2014-11-14T11:49:12.940 に答える