ホームページ > バックエンド開発 > PHPチュートリアル > PHP の動作: XPath を使用した XML ドキュメントからのデータの抽出

PHP の動作: XPath を使用した XML ドキュメントからのデータの抽出

PHPz
リリース: 2023-06-13 22:04:01
オリジナル
1664 人が閲覧しました

XPath は、PHP を使用して XML データを処理する場合に非常に便利なツールです。 XPath は、XML ドキュメント内の要素を検索するための言語です。これは、開発者が XML ドキュメントから必要なデータを迅速かつ簡単に抽出するのに役立ちます。

この記事では、XPath の基本概念を紹介し、PHP で XPath を使用する方法を詳しく説明します。 XPath を使用して XML ドキュメントからデータを抽出し、シンプルな PHP アプリケーションを構築して XPath の威力を実証する方法を示します。

XPath とは何ですか?

XPath は、XML ドキュメント内のノードを検索するための言語です。パス式を使用してドキュメント内の要素と属性を記述します。 XPath 式は XML ドキュメントの構造に基づいており、ノードまたはノードのセットを選択するために使用されます。

XPath は、W3C によって標準化された独立した標準です。 XPath 式は、PHP を含む多くのプログラミング言語で使用できます。

XPath 式の構文

XPath 式は、パス式を使用して XML 要素と属性を記述します。パス式は、一連のノード、関係演算子、述語で構成されます。

XPath 式の基本的な構文の一部を次に示します:

  • /: ルート要素を選択します
  • //: 任意の位置の要素を選択します
  • . : 現在のノードを選択します
  • .. : 親ノードを選択します
  • @ : 属性を選択します

XPath の述語を使用すると、特定のノードを選択できますノード。以下に述語の例をいくつか示します。

    #[id]: id 属性を含む要素を選択
  • ##[position()]: 位置が条件を満たす要素を選択
  • XPath は、論理演算子、一致述語、算術演算子などの複数の演算子をサポートします。

XPath for PHP

PHP では、DOM 拡張機能を使用して XML ドキュメントを解析し、XPath 式を使用してドキュメントのノードを検索および変更できます。

次は、XML ドキュメント内のノードを選択するための基本的な PHP スクリプトです:

$xml = new DOMDocument();

$xml->load("products.xml" );


$xpath = new DOMXPath($xml);

$nodes = $xpath->query("//name");


foreach ($nodes として $ node) {

echo $node->nodeValue . "
ログイン後にコピー

";

}


上記のコードは、DOMDocument クラスを使用して XML ドキュメントを読み取り、次に DOMXPath クラスを使用して XPath クエリを実行します。この例では、ドキュメント内のすべての名前要素をクエリし、各要素のノード値をループアウトします。

XPath の例

次に、XPath を使用して XML ドキュメントからデータを抽出する、より複雑な例を示します。

いくつかの書籍情報が含まれる次の XML ドキュメントを使用します。

<書店>

<本カテゴリ="料理">

<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
ログイン後にコピー

<本カテゴリ="子供向け">

<title lang="en">Harry Potter</title>
<author>J.K. Rowling</author>
<year>2005</year>
<price>29.99</price>
ログイン後にコピー

< ;/ book>

<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
ログイン後にコピー


すべての書籍をクエリしたいとします。カテゴリを「料理」にして、タイトルと価格を出力します。これを行うには、次の PHP コードを記述します:

$xml = new DOMDocument();

$xml->load (" Books.xml");


$xpath = new DOMXPath($xml);

$nodes = $xpath->query("//book[@category='cooking']" );


foreach ($nodes as $node) {

$title = $xpath->query("title", $node)->item(0)->nodeValue;
$price = $xpath->query("price", $node)->item(0)->nodeValue;
echo "Title: $title, Price: $price
ログイン後にコピー

";

}


上記のコードは、クエリ メソッドで XPath 式を渡します。条件を満たすノードを検索します。条件を指定し、for ループを使用してすべてのノードを反復処理します。各ノードについて、XPath クエリを使用してタイトルと価格の属性を抽出します。

この例では、述語 [@category='cooking'] を使用して category 属性が料理である book 要素を選択し、$xpath->query("title", $node)- を使用します。 >item(0)->nodeValue はタイトルを抽出します。同様に、$xpath->query("price", $node)->item(0)->nodeValue を使用して価格を抽出します。

結論

XPath は、XML ドキュメントからデータを抽出してノードを検索するための強力な方法を提供します。 PHP では、DOM 拡張機能を使用して XML ファイルを解析し、XPath を使用してノードのクエリと変更を行うことができます。これにより、XML データの操作がはるかに簡単かつ効率的になり、大量の XML データを迅速かつ効率的に処理するための理想的なソリューションになります。

以上がPHP の動作: XPath を使用した XML ドキュメントからのデータの抽出の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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