この記事では、DOM と simplexml を使用して XML ドキュメントを読み取るための PHP の方法を主に紹介し、DOM と simplexml を使用して XML ファイルを作成、読み込み、読み取るための PHP の関連操作スキルをサンプルの形で分析します。この記事の次の
例では、PHP が DOM と simplexml を使用して XML ドキュメントを読み取る方法について説明します。次のように、参考としてみんなと共有します。
例 DOM を使用して、次の XML ドキュメント内のすべての金庸小説のタイトルを取得します。XML ドキュメントの場所は ./books.xml です:
<?xml version="1.0" encoding="utf-8"?> <root> <book> <title>天龙八部</title> <author>金庸</author> </book> <book> <title>陆小凤</title> <author>古龙</author> </book> <book> <title>倚天屠龙记</title> <author>金庸</author> </book> <book> <title>西游记</title> <author>吴承恩</author> </book> <book> <title>神雕侠侣</title> <author>金庸</author> </book> <book> <title>射雕英雄传</title> <author>金庸</author> </book> </root>
DOM コードの使用 実装:
DOM の XML ドキュメントの読み取り手順: 1. DOM オブジェクトを作成します——》2. DOM ドキュメントのコンテンツをロードします——》3. 読み込むコンテンツが配置されているタグをインターセプトします——》読み取られる内容。
header('Content-type:text/html;charset=utf-8'); $arr=array(); $dom = new DOMDocument();//创建DOM对象 $dom->load('./books.xml');//载入xml文档 print_r($dom); echo '<hr>'; $dom = $dom->getElementsByTagName('book');//截取标签 for($i=0;$i<$dom->length;$i++){ if($dom->item($i)->childNodes->item(1)->childNodes->item(0)->wholeText=='金庸'){ $arr[] = $dom->item($i)->childNodes->item(0)->childNodes->item(0)->wholeText.'<br />';//获取内容 } } print_r($arr);
getElementsByTagName と childNodes を使用した後は、すべてのオブジェクトが返されるため、返されるオブジェクトに項目が 1 つだけ含まれている場合でも、後で item(int) を使用する必要があります。それ以外の場合は、item(0) で指定する必要があります。何かがうまくいかないでしょう。
simplexml コードを使用して実装します。
$simxml = simplexml_load_file('./books.xml'); $t = $simxml->book; $arr=array(); foreach ($t as $v){ if($v->author=='金庸'){ $arr[] = (string)$v->title; } } print_r($arr);
simplexml_load_file を使用すると、オブジェクトと配列の両方が含まれるオブジェクトが返されます。 foreach 内のコンテンツをループします。このインスタンスによって取得される最後のコンテンツ $v->title は実際にはオブジェクトであるため、string を使用して文字列に変換する必要があります。
PHP が DOM と simplexml を使用して XML ドキュメントを読み取る方法のその他の例については、PHP 中国語 Web サイトに注目してください。