XPath を使用して PHP で HTML/XML を解析および処理する例

WBOY
リリース: 2023-09-12 08:20:02
オリジナル
993 人が閲覧しました

XPath を使用して PHP で HTML/XML を解析および処理する例

PHP の XPath は、HTML/XML ドキュメントを解析して処理するための強力なツールです。これは XPath 言語に基づいており、パス式を通じてドキュメント内での正確なナビゲーションとクエリを可能にします。この記事では、PHP で XPath を使用して HTML/XML を解析および処理する方法を例を通して説明します。

まず、PHP の XPath 拡張機能をインストールして有効にする必要があります。標準の PHP ディストリビューションを使用している場合、通常、XPath 拡張機能はデフォルトで有効になっています。そうでない場合は、php.ini ファイルを編集し、次の行のコメントを解除することで XPath 拡張機能を有効にできます。

;extension=php_xsl.dll
ログイン後にコピー

コメントを解除した後、ファイルを保存して Web サーバーを再起動すると、XPath 拡張機能が有効になります。

次に、XPath が解析および処理するための HTML または XML ドキュメントを準備する必要があります。この例では、次のように単純な XML ドキュメントを使用します:

<root>
  <book>
    <title>PHP Cookbook</title>
    <author>David Sklar, Adam Trachtenberg</author>
    <price>25.99</price>
  </book>
  <book>
    <title>JavaScript: The Good Parts</title>
    <author>Douglas Crockford</author>
    <price>19.99</price>
  </book>
</root>
ログイン後にコピー

まず、DOMDocument オブジェクトを作成し、load 関数を使用して XML ドキュメントを DOMDocument にロードする必要があります:

$doc = new DOMDocument();
$doc->load('path/to/document.xml');
ログイン後にコピー

次に、DOMXPath オブジェクトを作成し、DOMDocument オブジェクトをそれに渡します。

$xpath = new DOMXPath($doc);
ログイン後にコピー

これで、XPath 式を使用してドキュメント内のノードをクエリできるようになります。一般的な XPath 式の例を次に示します。

  • ルート ノードの下にあるすべての子ノードをクエリする:
$nodes = $xpath->query('/');
ログイン後にコピー
  • すべてのブック ノードをクエリする:
$nodes = $xpath->query('/root/book');
ログイン後にコピー
  • 最初のブック ノードのタイトルをクエリする:
$node = $xpath->query('/root/book[1]/title')->item(0);
$title = $node->nodeValue;
ログイン後にコピー
  • すべてのブック ノードのタイトルをクエリする:
$nodes = $xpath->query('/root/book/title');
foreach ($nodes as $node) {
  $title = $node->nodeValue;
  echo $title;
}
ログイン後にコピー

および上記は、XPath でできることのほんの一例にすぎません。 XPath は、フィルタリング、並べ替え、カウントなど、他の多くの機能もサポートしています。詳細については、PHP 公式ドキュメントまたは XPath 言語仕様を参照してください。

XPath は、特に大量の HTML または XML データを処理する場合に、PHP で広く使用されています。必要な情報を見つけて抽出するためのシンプルかつ強力な方法を提供します。この例が役に立ち、XPath をより適切に使用して HTML/XML を解析および処理できるようになることを願っています。

以上がXPath を使用して PHP で HTML/XML を解析および処理する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!