使用SimpleXML添加子节点时使用特殊字符

时间:2011-09-13 14:49:47

标签: php xml simplexml

我正在使用SimpleXML创建一个将由Flash游戏读取的XML文件。游戏的想法是有一段文字,在该文本中某些单词将被隐藏,并且用户必须猜测哪个单词适合该位置。游戏不是由我创建的,所以我没有办法编辑它。

XML文件如下所示:

<page>
    <paragraph>
        All you have to do is <find>find</find> the missing words.
    </paragraph>
</page>

<find>标记包含的单词是游戏中消隐的单词,用户必须猜测它是什么。你可以有多个隐藏的单词来加强游戏。

我的问题是,当我使用这个代码时(这是一个简化版本,我的版本实际上使用了表单中的数据,但它是通过的相同字符串):

$page->addChild('paragraph', 'All you have to do is <find>find</find> the missing words.');

<>会自动转义,我完全明白为什么会这样,但我想知道是否有办法阻止这种情况发生?或者,如果有人知道如何解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:2)

我认为simplexml不具备这样的能力,
DOMDocument怎么样?

$doc = new DOMDocument('1.0', 'utf-8');
$doc->loadXML('<page/>');
$paragraph = $doc->createElement('paragraph');
$doc->appendChild($paragraph);

$paragraph->appendChild( new DOMText('All you have to do is ') );
$paragraph->appendChild( new DOMElement('find', 'find') );
$paragraph->appendChild( new DOMText(' the missing words.') );
echo $doc->saveXML();