【问题标题】:PHP SimpleXML: how to prevent converting > into >PHP SimpleXML:如何防止将 > 转换为 >
【发布时间】:2017-07-20 12:50:05
【问题描述】:

我有以下 XML 结构:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<node>text text >>>>> text</node>
</root>

当我使用simplexml_load_string 加载此字符串并通过print_r() 输出时,我得到了结果:

SimpleXMLElement Object
(
    [node] => text text >>>>> text
)

一切正常。但是当我使用 asXML() 方法将 SimpleXMLElement 转换为字符串时,问题就出现了:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<node>text text &gt;&gt;&gt;&gt;&gt; text</node>
</root>

如您所见 - &amp;gt; 字符已转换为 &amp;gt;

如何防止这种转换?

【问题讨论】:

  • 你为什么在乎? XML 的意思是一样的。
  • 嗯,您的初始 XML 结构不是有效的 XML。 SimpleXML 仅使输出有效。
  • 这对我很重要。
  • 获取格式不正确的 XML 对您来说重要吗?
  • @AndrewAndrew — “这对我来说很重要”是对“你为什么关心?”的回应?因为那只是递归。你不能因为你在乎而在乎。为什么这很重要?

标签: php simplexml


【解决方案1】:

你可以像这样使用 html_entity_decode:

html_entity_decode(asXML($string))

【讨论】:

  • 节点内容可能包含我不需要解码的实体。
猜你喜欢
  • 2013-10-11
  • 2010-11-26
  • 2013-11-06
  • 2016-10-20
  • 2016-09-02
  • 2023-02-02
相关资源
最近更新 更多