如何在保存XML文件时解码HTML实体?

时间:2012-12-02 09:01:22

标签: php xml domdocument html-entities

我的PHP脚本中有以下代码:

$str = '<item></item>';
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->formatOutput = true;
$xml->load('file.xml');
$items = $addon->getElementsByTagName('items')->item(0);
$items->nodeValue = $str;
$xml->save('file.xml');

在保存的file.xml中,我看到以下内容:

&lt;item&gt;&lt;\item&gt;

如何在不编码HTML实体的情况下将其保存在XML文件中?

1 个答案:

答案 0 :(得分:1)

使用DOMDocumentFragment:

<?php

$doc = new DOMDocument();
$doc->load('file.xml'); // '<doc><items/></doc>'

$item = $doc->createDocumentFragment();
$item->appendXML('<item id="1">item</item>');

$doc->getElementsByTagName('items')->item(0)->appendChild($item);
$doc->save('file.xml');

如果您要附加到根元素,请使用$doc->documentElement->appendChild($item);代替getElementsByTagName