###前提・実現したいこと
PHPのDOMにノードを追加して出力したい
###発生している問題・エラーメッセージ
正しいXMLが出力されない。
問題の該当部分→ <<abc><poly> test 1</poly></abc>/>
期待した結果→ <abc><poly> test 1</poly></abc>
XML
1<?xml version="1.0" encoding="UTF-8"?> 2<root> 3 <folders> 4 <folder> 5 <<abc><poly> test 1</poly></abc>/> 6 </folder> 7 <folder> 8 <<abc><poly> test 2</poly></abc>/> 9 </folder> 10 <folder> 11 <<abc><poly> test 3</poly></abc>/> 12 </folder> 13 <folder> 14 <<abc><poly> test 4</poly></abc>/> 15 </folder> 16 </folders> 17</root> 18
###該当のソースコード
PHP
1 2<?php 3 4$root = '<?xml version="1.0" encoding="UTF-8" ?><root></root>'; 5//XML作成開始 6$sxml = new SimpleXMLElement($root); 7$folders = $sxml->addChild('folders'); 8 9$xml_arr=array( 10 "<abc><poly> test 1</poly></abc>" ,"<abc><poly> test 2</poly></abc>" 11 ,"<abc><poly> test 3</poly></abc>" ,"<abc><poly> test 4</poly></abc>"); 12 13foreach($xml_arr as $xml) { 14 $aa = $folders->addChild('folder'); 15 $aa->addChild( $xml); 16} 17 18//ownerDocumentはノードが含まれるトップレベルのドキュメントオブジェクトを返す 19$dom = dom_import_simplexml($sxml)->ownerDocument; 20$dom->preserveWhiteSpace = false; 21$dom->formatOutput = true; 22echo $dom->saveXML(); 23 24exit; 25?> 26
###試したこと
textnodeで挿入してみても文字コード化してしまう。
###補足情報(言語/FW/ツール等のバージョンなど)
php5
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/17 16:10