提问人:Nikoole 提问时间:3/20/2014 最后编辑:Nikoole 更新时间:4/17/2014 访问量:65
XML - 转义字符串的正确方法
XML - proper way to escape string
问:
我只想添加任何字符串的标签。
我正在使用此代码来转义字符串:
$name = $this->_dom->createElement('name', htmlspecialchars($userName, ENT_COMPAT,'utf-8'));
$item->appendChild($name);
我遇到了一个问题,我的一个用户将一些特定的符号放入名称字段,整个xml提要都坏了。我必须如何转义字符串?
谢谢你的帮助,对不起我的英语很差......
答:
2赞
mwu
3/20/2014
#1
我认为使用 createTextNode 添加 xml 节点的值而不是将其作为参数传递给 createElement 可能会解决您的问题。
评论
0赞
Nikoole
3/20/2014
感谢您的反馈。我将对其进行测试并在此处写下结果。
0赞
Nikoole
3/21/2014
我将在周一检查这个问题。别担心,我会检查你的答案“已接受”。非常感谢!
0赞
mwu
3/21/2014
谢谢你,但更多的是我想确保我帮了忙。:)
0赞
Nikoole
4/17/2014
#2
我的解决方案:
$title = $this->_dom->createElement('title',
htmlspecialchars($playlist->getTitle(),
ENT_DISALLOWED, 'utf-8')
);
当你输出xml时,你必须剥离(替换字符)看到这个相关的链接,ENT_DISALLOWED如下:
echo str_replace('�', '', $this->_dom->saveXML());
这种方式允许我们显示任何带有 html 实体和/或特殊字符的字符串。
评论