我正在从PHP脚本生成XML文档,并且需要转义XML特殊字符。我知道应该转义的字符列表;但是正确的方法是什么?
应该使用反斜杠(')来转义字符还是正确的方法?有内置的PHP函数可以为我处理此问题吗?
使用DOM类生成整个XML文档。它将处理我们甚至不需要关心的编码和解码。
编辑: 这被@Tchalvak批评:
DOM对象创建了一个完整的XML文档,它不容易将其自身编码为一个字符串。
错了,DOMDocument只能输出一个片段而不是整个文档:
$doc->saveXML($fragment);
这使:
Test & <b> and encode </b> :) Test &amp; <b> and encode </b> :)
如:
$doc = new DOMDocument(); $fragment = $doc->createDocumentFragment(); // adding XML verbatim: $xml = "Test & <b> and encode </b> :)\n"; $fragment->appendXML($xml); // adding text: $text = $xml; $fragment->appendChild($doc->createTextNode($text)); // output the result echo $doc->saveXML($fragment);
观看演示