2

私はこれを探し回りましたが、見つけることができませんでした。ワイルドカードを使用して html から要素を選択したいだけです。たとえば、私がスクレイピングしているページの場合、このセレクターは Jquery のコンソールで完全に機能します。

$("tr[id^='informal_']")

つまり、「informal_」で始まる ID を持つすべての行を取得します。xpath を試してみましたが、うまくいきませんでした。xpath は XML 専用ですか? とにかく、誰かがそこに解決策を持っているなら、私はそれを大いに感謝します.

編集

私が使用したxpath:

  $doc = new DOMDocument($html);
  $doc->strictErrorChecking = false;
  $xpath = new DOMXPath($doc);
  $table_rows = $xpath->query("//*tr[starts-with(@id, 'informal_')]");

解決策私は、 http ://code.google.com/p/phpquery/ を使用することにしました。

コードは次のとおりです。

require('phpQuery/phpQuery.php');

    $doc = phpQuery::newDocumentHTML($html);;
    $table_rows = $doc->find("tbody tr[id^='informal_']");
4

2 に答える 2

3

jQuery セレクターに相当するもの

tr[id^='informal_']

XPathでは、

//tr[starts-with(@id, 'informal_')]

あなたは答えに非常に近かった*です。邪魔になったのは だけでした。

于 2012-08-18T09:06:52.200 に答える
0

*trワイルドカードをリテラル ノード名と混合しているため、無効な XPath です。

必要なのは*、つまり*[starts-with...

于 2012-08-18T08:39:50.740 に答える