问题描述
我正在尝试使用 SimpleXMLElement 导出 XML 并更改字符。
我尝试使用不同的编码,将 CDATA 作为字符串插入,但没有解决任何问题。
我错过了什么?
导出代码:
<?PHP
// Create a new XML
$xmlExport = new SimpleXMLElement('<Products/>');
// Add a new node.
$product = $xmlExport->addChild('Product');
// Adding Yaşam.
$product->addChild('Category');
$product->Category = "Yaşam";
// Exporting the new XML
$xmlExport->asXML('xml.xml');
?>
我得到的结果:
<?xml version="1.0"?>
<Products>
<Product>
<Category>Yaşam</Category>
</Product>
</Products>
预期结果:
<?xml version="1.0"?>
<Products>
<Product>
<Category>Yaşam</Category>
</Product>
</Products>
我解决了问题
我发现了问题,我在某处读到 SimpleXMLElement 默认使用 UTF-8 编码,在我的情况下,信息似乎有误或不起作用。
我变了
$xmlExport = new SimpleXMLElement('<Products/>');
到
$xmlExport = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><Products/>");
解决方法
我发现了问题,我在某处读到 SimpleXMLElement 默认使用 UTF-8 编码,在我的情况下,信息似乎有误或不起作用。
我变了
$xmlExport = new SimpleXMLElement('<Products/>');
到
$xmlExport = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><Products/>");