在SimpleXMLElement中编写原始xml

时间:2016-01-11 21:36:26

标签: php

我制作了SimpleXMLElement,我想在其中编写自己的XML,每当我编写带有&lt;和其他转义字符的XML时。使用XMLWriter&#39; writeRaw函数,我可以编写<a>a</a><b>b</b>,XML文件将包含完整的字符串,而不会以任何方式进行转义。

有没有办法可以使用SimpleXMLElement编写该字符串,并使用确切的字符串返回,而不是转义。

之前我见过this question,但是当我使用它时,答案会返回错误,而我似乎无法修复它。

1 个答案:

答案 0 :(得分:1)

SimpleXML没有直接具备此功能,但它在DOM系列函数中可用。值得庆幸的是,在同一个XML文档上同时使用SimpleXML和DOM很容易。

以下示例使用文档片段向文档中添加几个元素。

<?php

$example = new SimpleXMLElement('<example/>');

// <example/> as a DOMElement
$dom = dom_import_simplexml($example);

// Create a new DOM document fragment and put it inside <example/>
$fragment = $dom->ownerDocument->createDocumentFragment();
$fragment->appendXML('<a>a</a><b>b</b>');
$dom->appendChild($fragment);

// Back to SimpleXML, it can see our document changes
echo $example->asXML();

?>

以上示例输出:

<?xml version="1.0"?>
<example><a>a</a><b>b</b></example>