現在の位置: ホーム> 最新記事一覧> XML_PARSEを使用して、XMLファイルの属性と要素を解析する

XML_PARSEを使用して、XMLファイルの属性と要素を解析する

M66 2025-05-13

PHPでは、XMLファイルの解析は、データ交換および構成ファイルを処理する一般的な方法です。 XML_PARSE()関数は、PHPが提供するイベント駆動型XML解析方法です。他のパーサー関数を組み合わせることにより、XMLファイルの要素と属性を読み取ることができます。この記事では、XML_PARSE()を使用してXMLを解析し、要素のコンテンツと属性情報を抽出する方法を理解するために、段階的に段階的に説明します。

1. XMLサンプルファイルを準備します

最初に、解析エクササイズのための簡単なXML例を準備します。ファイルの名前がexample.xmlであると仮定し、コンテンツは次のとおりです。

 <?xml version="1.0" encoding="UTF-8"?>
<books>
    <book id="101" genre="fiction">
        <title>PHP はじめる</title>
        <author>チャン・サン</author>
    </book>
    <book id="102" genre="programming">
        <title>詳細な理解 PHP</title>
        <author>li si</author>
    </book>
</books>

2。XMLパーサーを作成し、処理機能をセットアップします

PHPのXML Parsingは、イベントベースのアプローチを使用します。複数のハンドラーを定義し、パーサーにバインドする必要があります。

 <?php

$parser = xml_parser_create();

function startElement($parser, $name, $attrs) {
    echo "要素を開始します: $name\n";
    if (!empty($attrs)) {
        echo "財産:\n";
        foreach ($attrs as $key => $value) {
            echo " - $key = $value\n";
        }
    }
}

function endElement($parser, $name) {
    echo "終了要素: $name\n";
}

function characterData($parser, $data) {
    $data = trim($data);
    if (!empty($data)) {
        echo "コンテンツ: $data\n";
    }
}

// バインド処理関数
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");

3. XMLコンテンツの読み取りと解析

次に、 example.xmlファイルを読み、パーサーを使用して解析します。

 $fp = fopen("example.xml", "r");
if (!$fp) {
    die("ファイルを開くことができません");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($parser, $data, feof($fp))) {
        die(sprintf(
            "XML 間違い: %s で %d わかりました",
            xml_error_string(xml_get_error_code($parser)),
            xml_get_current_line_number($parser)
        ));
    }
}

xml_parser_free($parser);
fclose($fp);
?>

スクリプトを実行した後、端子は各要素の開始と終了、属性と値を順番に出力します。例えば:

 要素を開始します: BOOKS
要素を開始します: BOOK
財産:
 - ID = 101
 - GENRE = fiction
要素を開始します: TITLE
コンテンツ: PHP はじめる
終了要素: TITLE
要素を開始します: AUTHOR
コンテンツ: チャン・サン
終了要素: AUTHOR
終了要素: BOOK
...

4。実際のアプリケーションで使用します

プロセッサ関数と組み合わせたXML_PARSE()関数を介して、データを抽出する方法を自由に制御し、解析結果をデータベースに保存するか、次のような対応するHTMLページを生成することもできます。

 echo "<a href='https://m66.net/book.php?id=101'>チェック《PHP はじめる》</a>";

この方法は、データ読み取りプロセスをカスタマイズするのに非常に実用的です。

5。概要

XML_PARSE()は、 XMLデータを解析するための軽量で高速な方法を提供します。 Dom Parserよりも根本的ですが、パフォーマンス要件が高い状況またはデータ構造がわかっている状況には非常に適した選択肢です。イベント駆動型の解析をマスターすると、XMLファイルの構造とデータ処理メカニズムをより深く理解するのにも役立ちます。