ホームページ >バックエンド開発 >PHPチュートリアル >php を使用して XML ファイルを解析する方法_PHP チュートリアル
DOMElement
DOMElement DOMDocument::createElement ( string $name [, string $value ] )
ノード要素を作成する
文字列 $name: ノード名
String $value: ノードの値
8. ノードを追加します
•DOMNode DOMNode::appendChild ( DOMNode $newnode )
子ノードを追加します
DOMNode $newnode: 新しいノード
DOM操作では、追加、削除、変更操作は親ノードに依存する必要があります
9. 保存
•文字列DOMDocument::saveXML
文字列に保存
•int DOMDocument::save ( string $filename )
ファイルに保存
文字列 $filename:ファイル名
10. ノードを削除します
•DOMNode DOMNode::removeChild ( DOMNode $oldnode )
ノードを削除します
DOMNode $oldnode: 削除するノード
11. ノードを更新します
•DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
DOMNode $newnode: 新しいノード
DOMNode $oldnode: 元のノード
12. 属性を追加します
•DOMAttr DOMElement::setAttribute( string $name , string $value )
文字列 $name: 属性名
文字列 $value: 属性値
13. 属性を変更する
DOMAttr DOMElement::setAttribute( string $name , string $value )
文字列 $name: 属性名
文字列 $value: 属性値
14. 属性の削除
•bool DOMElement::removeAttribute ( string $name )
String $name: 削除する属性の名前
15. 属性を取得する
•string DOMElement::getAttribute ( string $name )
String $name: 取得する属性値の属性名
DOMDocument は、PHP5 以降にリリースされた DOM 拡張機能の一部でもあり、html/xml の作成または解析に使用できます。現在、utf-8 エンコーディングのみをサポートしています。
コードは次のとおりです | |
$xmlstring = << $dom = 新しい DOMDocument(); 関数 getArray($node) { if ($node->hasAttributes()) { if ($node->hasChildNodes()) { |
簡易XML
SimpleXML は、PHP5 以降に提供されたシンプルで使いやすい XML ツールのセットで、XML を処理に便利なオブジェクトに変換したり、XML データを整理して生成したりすることができます。ただし、名前空間を含む XML には適用されず、XML は整形式である必要があります。これは、simplexml_import_dom、simplexml_load_file、simplexml_load_string の 3 つのメソッドを提供します。関数名は関数を直感的に説明します。 3 つの関数はすべて SimpleXMLElement オブジェクトを返し、データは SimpleXMLElement 操作を通じて読み取り/追加されます
コードは次のとおりです | |
$xml = simplexml_load_string($string); |
SimpleXML の利点は、開発が簡単であることです。欠点は、処理前に XML 全体をメモリにロードするため、大量のコンテンツを含む XML ドキュメントを解析できない可能性があることです。小さなファイルを読み取っており、XML に名前空間が含まれていない場合は、SimpleXML が適切な選択です。
XMLリーダー
XMLReader も PHP5 以降の拡張機能です (5.1 以降はデフォルトでインストールされます) ドキュメントフロー内をカーソルのように移動したり、各ノードで停止したりするため、非常に柔軟な操作が可能です。入力への高速かつ非キャッシュのストリーミング アクセスを提供し、ストリームまたはドキュメントを読み取ることができるため、ユーザーはそこからデータを抽出し、アプリケーションにとって意味のないレコードをスキップできます。
Google Weather API を使用して情報を取得する例では、XMLReader の使用が示されています。詳細については、公式ドキュメントを参照してください。
コードは次のとおりです | |
$xml_uri = 'http://www.google.com/ig/api?weather=北京&hl=zh-cn'; $reader = 新しい XMLReader(); //予測データを取得する |
XMLReader は XML Parser に似ていますが、どちらも読み取り中に動作します。大きな違いは、SAX モデルが「プッシュ」モデルであり、新しいノードが読み取られるたびにアナライザーがアプリケーションにイベントをプッシュし、アプリケーションに通知します。 XmlReader を使用すると、リーダーから自由にノードを抽出でき、制御性が向上します。
XMLReader は libxml に基づいているため、一部の関数のドキュメントを参照して、お使いの libxml バージョンに適用できるかどうかを確認する必要があります。