0

DOMDocumentとDOMXpathを使用してhtmlページを解析しています。

マークアップは次のようになります。

<dl>
  <dt>
   <a href="">name</a>
  </dt>
  <dd>
   <span class="one">one</span>
   <span class="two">two</span>
  </dd>
</dl>
<dl>
  <dt>
   <a href="">name</a>
  </dt>
  <dd>
   <span class="one">one</span>
   <span class="two">two</span>
  </dd>
</dl>

元々、私はhref値を取得するだけでよく、次のものを使用できました。

  $doc = new \DOMDocument();
  $doc->loadHTML($html);
  $xpath = new \DOMXPath($doc);
  $res = $xpath->query('//dl/dt/a');

次に、とを使用して結果を反復処理し->nodeValueます->getAttribute('href')

ただし、ここで、値のクラスが「two」のspanタグ内の値も取得したいと思います。

そこで、クエリをに更新しました$xpath->query('//dl')

問題は、hrefタグと値、およびクラス名を含むスパン値を取得するにはどうすればよいかということです。また、クエリするパスをデバッグまたは表示する方法に関する提案は、非常に役立ちます。

ありがとうございました!

4

1 に答える 1

2

これらの値をパスで直接取得します。

$res = $xpath->query('//a/@href');

およびスパンタグ内のコンテンツ:

$res = $xpath->query("//span[@class='two']");

ここでxpathをテストできます:http ://www.xpathtester.com

于 2013-03-05T22:54:15.987 に答える