【问题标题】:XML - proper way to escape stringXML - 转义字符串的正确方法
【发布时间】:2014-04-27 03:41:30
【问题描述】:

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

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

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

我遇到了一个问题,我的一个用户在名称字段中添加了一些特定的符号,整个 xml 提要被破坏了。我必须如何转义字符串?

感谢您的帮助,对不起我的英语不好...

【问题讨论】:

    标签: php ios iphone xml xml-parsing


    【解决方案1】:

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

    【讨论】:

    • 感谢您的反馈。我会测试它并在这里写结果。
    • 这是否解决了您的问题?
    • 我会在星期一检查这个问题。别担心,我会检查你的答案“接受”。非常感谢!
    • 谢谢,但我更想确保我能提供帮助。 :)
    【解决方案2】:

    我的解决方案:

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

    并且当你输出 xml 时,你必须剥离 � (REPLACEMENT CHARACTER) 参见 this 相关链接关于 ENT_DISALLOWED 像:

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

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

    【讨论】:

      猜你喜欢
      • 2011-09-08
      • 2019-11-19
      • 2015-02-07
      • 2011-01-05
      • 2019-07-28
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多