ホームページ  >  記事  >  php教程  >  PHP で XML を読み書きするいくつかの方法

PHP で XML を読み書きするいくつかの方法

WBOY
WBOYオリジナル
2016-06-13 11:56:071014ブラウズ

1.DOM 生成と读取 XML 文例の使用
例一:

复制代代码如下:


< ?php
//DOM を使用して XML 文字列と XML ドキュメントを作成します
$dom = new DomDocument('1.0');
//ルートを追加 -
$books = $dom->appendChild($dom->createElement_x_x ('books'));
// を追加します。要素を に追加します。
$book = $books->appendChild($dom->createElement_x_x ('book'));
//を追加します。 への要素
$title = $book->appendChild($dom->createElement_x_x ('title'));
//を追加します。テキスト ノード要素を に追加します。 <br>$title->appendChild($dom->createTextNode('偉大なアメリカ小説')); <br>//xml を生成 <br>$dom->formatOutput = true; // domDocument の formatOutput 属性を true に設定します <br>// XML を文字列またはファイルとして保存します <br>$test1 = $dom->saveXML(); // test1 に文字列を入れます <br>$dom ->保存('test1.xml'); // ファイルとして保存 <br>?> <br></book></books></p> <br>实例二: <br><p class="codetitle"><span style="CURSOR: pointer" onclick="doCopy('code49077')"><u>复制代</u></span>代码如下:</p> <p class="codebody" id="code49077"> <br>$aa = "111" ; <br>$xmlstr = <<<XML <BR><?xml version='1.0'?> <br> <br><title>{$aa}
ジョー
ジェーン

それが答えだとわかっていますが、質問は何ですか?


XML;
$dom = 新しい domDocument;
$dom->loadXML($xmlstr);
$test1 = $dom->saveXML();
$dom->save('test1.xml');



实例 3:
test1.xml:

复制代码 代码如下:





<著者>ジャック・ヘリントン
PHP ハック
オライリー出版社>


<著者>ジャック・ヘリントン
ポッドキャスティングのハック
オライリー出版社>




example.php:

复制代码代码如下:


$doc = 新しい DOMDocument();
$doc->load('test1.xml');
$books = $doc->getElementsByTagName("book");
foreach($books as $book){
$authors = $book->getElementsByTagName("著者");
$author = $authors->item(0)->nodeValue;
$publishers = $book->getElementsByTagName( "publisher" );
$publisher = $publishers->item(0)->nodeValue;
$titles = $book->getElementsByTagName( "title" );
$title = $titles->item(0)->nodeValue;
エコー "$title - $author - $publishern";
}



二.単純な生成と读取xml文例の使用
实例一:

复制代代码如下:


$xmlstr = <<


偉大なアメリカ小説


クリフ名前>
本当に素晴らしい人


素敵な女性
比類のない美しさ


忠実な犬
眠い



クリフと素敵な女性の出会い。忠実な犬は眠っていますが、目が覚めて郵便配達員に向かって吠えます


4
9


XML;

//引取节点内容
$xml = new SimpleXMLElement($xmlstr);
foreach ($xml->book[0]->success as $success) {
switch((string) $success['type']) { // 要素のインデックスとして属性を取得します
ケース「ベストセラー」:
echo $success。 ' ベストセラー リストに数か月掲載されました
';
休憩;
ケース 'ブッククラブ':
echo $success。 「ブッククラブのリスト」;
休憩;
}
}

//修正文本节点内容
$xml = new SimpleXMLElement($xmlstr);
$xml->book[0]->characters->character[0]->name = 'ビッグクリフ';
echo $xml->asXML();

// 追加子元素の文本节点
$xml = new SimpleXMLElement($xmlstr);
$character = $xml->book[0]->characters->addChild('character');
$character->addChild('name', 'Yellow Cat');
$character->addChild('desc', 'aloof');
$success = $xml->book[0]->addChild('success', '2');
$success->addAttribute('type', 'reprints');
echo $xml->asXML();

?>



实例二:

复制代代码如下:


if (file_exists ('test1.xml')) { //读取xml文件
$xml = simplexml_load_file('test1.xml');
var_dump(xml);
} else {
exit('test1.xml を開けませんでした。');
}



三.DOM と単純操作
相互 DOM 导入simpleXML:

复制代代码如下:


$sxe = simplexml_load_string('偉大なアメリカの<br>小説');
if ($sxe === false) {
echo 'ドキュメントの解析中にエラーが発生しました';
終了;
}
$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
echo 'XML 変換中のエラー';
終了;
}
$dom = new DOMDocument('1.0');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);
$test2 = $dom->saveXML(); // test2に文字列を入れます
$dom ->保存('test2.xml'); // ファイルとして保存
?>



simpleXML导入DOM:

复制代码代码如下:


< ?php
$dom = 新しい domDocument;
$dom->loadXML('偉大なアメリカ人<br>小説');
if (!$dom) {
echo 'ドキュメントの解析中にエラーが発生しました';
終了;
}
$s = simplexml_import_dom($dom);
echo $s->book[0]->title; // アメリカの偉大な小説
?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。