[PHP]XMLの&(アンパサンド)の扱い

PHPのDomdocumentで&を使うとWarningが出て、&以降が削除される。

DOMDocument::createElementでは、以下のように書いてある。

指定した値はすべてそのまま用いますが、エンティティ参照 < と > だけはエスケープします。& は手動でエスケープする必要があることに注意しましょう。 そうしないと、エンティティ参照の開始とみなされてしまいます。また、” はエスケープされません。

つまり、&は、&amp;にするか、CDATAに包むかしないとXMLが壊れてしまう。

結果:

 

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">