simplexml_load_file添加CDATA部分

时间:2020-10-26 09:25:22

标签: php

我想将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自定义类一起使用,我会很高兴。

0 个答案:

没有答案