PHP ウェブサイトの開発と構築の過程では、XML ドキュメントを解析する必要がよくあります。PHP4 バージョンには XML パーサー (sax) が付属しており、PHP5 バージョンには SimpleXML (dom ベース) XML 拡張機能が追加されています。今日は、さまざまな環境で XML ドキュメントを解析する方法を紹介します。
XML ドキュメント
|
バージョン<🎜>="1.0"<🎜>
エンコーディング<🎜>="gbk"<🎜>?>
|
1 |
$info
= simplexml_load_file('leapsoulcn.xml'); |
コードのコメント
行 1: simplexml_load_file: XML ドキュメントを操作オブジェクトとして読み取ります。ローカルまたはリモートの XML ドキュメントを読み取ることができます。simplexml_load_string: XML 文字列を操作オブジェクト Object
行 3: 特定のノードの情報を取得する方法がわからない場合は、print_r 関数を使用して出力を印刷し、simplexml 解析によって返されるオブジェクトは配列構造を持っています。5~8行目:XML文書のノード情報をオブジェクトモードで読み込み、読み込み方法:ハンドル→ノード要素名→子ノード、同じノード要素が複数ある場合は配列(array)メソッドを使って読み込みます
注意: simplexml 解析によって返される情報は UTF8 形式であるため、Web サイトが GBK を使用している場合は、iconv 関数またはその他の utf8 および gbk 変換関数を使用してトランスコードする必要があります。 . 、たとえば: $name = iconv('utf-8','gbk',$name);
9~17行目:全要素配下の子ノード情報をトラバーサル形式で読み込みます行 19 ~ 21: simplexml の
xpath 関数は XML データをクエリするために使用されます。たとえば、ここでクエリされるのはすべての名前ノード の値です。
行 23 ~ 26:children 関数は、特定のノードの下にあるすべての子ノードの値を検索するために使用されます。 getName 関数は、各子ノードの要素名を取得するために使用されます
行 28 ~ 29:addChild 関数は、特定のノードの下に子ノードを追加するために使用されます。asXML 関数は、変更された XML ドキュメントを保存します
クリックすると、SimpleXML 関数の説明がさらに表示されます。
PHP4 版に付属する XML 関数の解析方法
1
|
関数 doStartElement($xmlParser,$name,$attr) |
コードのコメント
1~15行目:開始要素、終了要素、要素間の文字データの処理関数を定義
行 16: 新しい XML パーサーを作成し、他の XML 関数で使用できるリソース ハンドルを返します。入力のデフォルトのエンコーディングは「ISO-8859-1」です。同時にサポートされるエンコード方式は「UTF-8」と「US-ASCII」であり、出力データのエンコード方式はxml_parser_create関数の定義と一致します。
18 行目: 開始要素ハンドラーと終了要素ハンドラーを作成します
行 20: 要素間の関連データを処理する文字データ プロセッサを確立します
注: XML 構文パーサーはスペースを追加または削除しません。スペースの選択は開発者によって決定されます。
行 22: パーサーを開始します。xml_parse 関数の 2 番目のパラメーターは文字型なので、ここではローカルとリモートで使用できる file_get_contents 関数を使用します。 fopen関数
も使えます。行 24: XML 解析が完了したら、パーサーによって占有されていたメモリを解放します
組み込み XML 関数解析のアイデア
第 1 ステップ: 開始要素、終了要素、および要素間の文字データの処理関数をカスタマイズします。第 2 ステップ: XML パーサーを確立します。第 4 ステップ: 開始要素と終了要素のプロセッサを確立します。 : 要素間の関連データを処理する文字データ プロセッサを確立します。 ステップ 5: パーサーを開始します。 ステップ 6: XML 解析が完了したら、パーサーによって占有されていたメモリを解放します。
概要:
一般に、PHP に付属の XML パーサーは非常に使いにくく、強力なロジックを必要とします。また、XML 文書の構造が異なる場合、要素や文字など 3 つの関数を再定義する必要があり、これらは、PHP に追加されます。 PHP5 バージョン。SimpleXML が拡張された後は、XML 解析が非常に簡単になります。もちろん、より複雑な XML ドキュメント解析操作を実行する必要がある場合は、非常に強力な libxml をダウンロードしてインストールして使用することもできます。
注意: PHP Web サイト開発チュートリアル-leapsoul.cn 転載の際は、元のソースとこの記述をリンクの形で明記してください。