XML - 转义字符串的正确方法

时间:2014-03-20 10:47:04

标签: php ios iphone xml xml-parsing

我只想在标签中添加任何字符串。

我正在使用此代码来转义字符串:

$name = $this->_dom->createElement('name', htmlspecialchars($userName, ENT_COMPAT,'utf-8'));
$item->appendChild($name);

我遇到了一个问题,我的一个用户在名称字段中添加了一些特定符号,并且整个xml Feed都被破坏了。我怎么必须逃脱字符串?

感谢您的帮助,抱歉我的英语不好......

2 个答案:

答案 0 :(得分:2)

我认为使用createTextNode添加xml节点的值而不是将其作为createElement的参数传递可以解决您的问题。

答案 1 :(得分:0)

我的解决方案:

$title = $this->_dom->createElement('title',
    htmlspecialchars($playlist->getTitle(), 
    ENT_DISALLOWED, 'utf-8')
);

当您输出xml时,您必须删除�(REPLACEMENT CHARACTER),请参阅有关ENT_DISALLOWED的this相关链接:

echo str_replace('�', '', $this->_dom->saveXML());

这种方式允许我们显示任何带有html实体和/或特殊字符的字符串。