2016-01-11 5 views
1

У меня есть SimpleXMLElement, и я хочу написать свой собственный XML внутри него, всякий раз, когда я пишу XML, он возвращает с &lt; и другими экранированными символами. С помощью функции XMLWriterwriteRaw я могу написать <a>a</a><b>b</b>, а файл XML будет содержать эту точную строку, а не экранировать.Напишите raw xml в SimpleXMLElement

Есть ли способ, которым я могу написать эту строку, используя SimpleXMLElement и вернуть ее с помощью точной строки, а не экранированной.

Я видел this question раньше, но ответ возвращает ошибку, когда я использую ее, и я не могу ее исправить.

+0

Возможная Дубликат [PHP - SimpleXML - AddChild с другим SimpleXMLElement] (http://stackoverflow.com/questions/4778865/php-simplexml-addchild- with-another-simplexmlelement) –

+0

Удаление ответа на вопрос повторяется. Вы должны думать об удалении вопроса. –

ответ

1

SimpleXML не имеет этой способности напрямую, но доступен в семействе функций DOM. К счастью, легко работать с SimpleXML и DOM одновременно с одним и тем же XML-документом.

В приведенном ниже примере используется фрагмент документа , чтобы добавить несколько элементов в документ.

<?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> 
Смежные вопросы