【问题标题】:How to Construct xml in php with Special Characters?如何使用特殊字符在 php 中构造 xml?
【发布时间】:2011-02-24 03:13:09
【问题描述】:

我的用户输入带有特殊字符的消息如下:

this is a test of &&, &&, % as well as '' "", " instead of this is a test of &, &&, % as well as '' "", "

我需要按如下方式构造 XML:

<?xml version='1.0' encoding='iso-8859-1'?>
<success>
<message>
this is a test of &amp;, &amp;&amp;, % as well as '' &quot;&quot;, &quot; instead of this is a test of &, &&, % as well as '' "", "
</message>
</success>

任何人都可以帮助我吗? 提前致谢

【问题讨论】:

  • 您呈现的 xml 格式不正确 - 如果它不是实体引用的一部分(如 &),则 xml 中不能有未转义的 &。
  • 更多完整和充实的答案可以在这里的这个问题中找到:stackoverflow.com/questions/3957360/…

标签: php xml


【解决方案1】:

尝试使用htmlspecialchars() (PHP spec) 清理输入字符串,然后再将其添加到应为您提供所需编码的XML 文档中。

但是,如果您在创建 XML 文档的方式上不受限制(即您可以通过纯字符串操作以外的方式进行操作),我会遵循 prostynick 的解决方案,因为从长远来看它会更加健壮。

【讨论】:

  • htmlspecialchars() 将我的字符串的一半转换为 html 实体如下这是对 &、&&、% 以及 '' ""、" 的测试而不是这是对 &, &&, % 以及 '' 的测试,但仍然有一些 & 没有转换为 &,
【解决方案2】:

您可以使用DOMDocument 创建xml 文档并附加所需的元素和文本。 &amp;amp; 等所有字符都将转换为 &amp;amp; 等。

【讨论】:

    猜你喜欢
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多