ホームページ >バックエンド開発 >PHPチュートリアル >XPath を使用して CSS クラスを選択するには?

XPath を使用して CSS クラスを選択するには?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-08 18:30:15368ブラウズ

How to Select a CSS Class Using XPath?

XPath で CSS クラスを選択する方法

問題:

選択したいXPath を使用して HTML ドキュメント内の「.date」という特定のクラスを使用しましたが、あなたの試みは

コード:

@$doc = new DOMDocument();
@$doc->loadHTML($html);
$xml = simplexml_import_dom($doc); //Simplify XPath
$images = $xml->xpath('//[@class="date"]'); 

解決策:

CSS とは異なり、XPath はクラス セレクターをネイティブにサポートしません。ただし、回避策があります:

正しい XPath 構文:

//*[contains(concat(" ", normalize-space(@class), " "), " foo ")]

この式は、クラス属性に部分文字列が含まれる要素と一致します。 "foo".

説明:

  • normalize-space: 先頭と末尾の空白を削除します。
  • concat: " " を結合します。正規化された @class 値、およびクラス名が確実に囲まれるようにするための " " space.
  • contains: 連結された文字列に「 foo 」が含まれているかどうかを確認します。

例:

<div>

XPath クエリは次のようになります。 「date」クラスの要素を正しく選択し、「foobar」を無視します。 element.

間違ったアプローチ:

  • //*[@class="foo"]: 複数のクラスの要素と一致しません。
  • //*[contains(@class, "foo")]: "foo" を含むクラスの要素と一致します。 「foobar」のような長いクラス名の一部であっても、部分文字列。

以上がXPath を使用して CSS クラスを選択するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。