我想将CDATA部分添加到我的XML中。我有以下代码:
if(isset($_POST['submitSave'])) {
$products = simplexml_load_file('data/product.xml');
//Get latest id and increase by 1
$ids = $products->xpath("//products/product/@id"); // select all ids
$newid = max(array_map("intval", $ids)) + 1; // change objects to `int`, get `max()`, + 1
$product = $products->addChild('product');
// Auto increment ID
$product->addAttribute('id', $newid);
$product->addChild('image', $_POST['image']);
$product->addChild('name', $_POST['name']);
$product->addChild('price', $_POST['price']);
$product->addChild('description', '<![CDATA[ ' . $_POST['description'] . ']]>');
file_put_contents('data/product.xml', $products->asXML());
header('location:index.php');
如您所见,我尝试手动添加CDATA,但是在输出中未正确编码。我还发现了一些solutions使用自定义类,但它们没有使用simplexml_load_file。
有人结束了我的问题,但我什至链接了建议的解决方案。这对我没有帮助,因为它们用于创建新的xml,而不是使用simplexml_load_file()加载现有的xml。
如果有人可以向我展示如何将simplexml_load_file与建议的CDATA自定义类一起使用,我会很高兴。