【发布时间】:2013-07-29 07:44:13
【问题描述】:
首先:我是 SimpleXMLElement 对象的新手,所以也许我做错了什么。
我必须加载这个字符串:
$xmlTipologie=simplexml_load_string(html_entity_decode("<?xml version='1.0' encoding='utf-8'?><content>".$temp_dom->saveHTML()."</content>", null, "UTF-8"));
但这是我得到的错误:
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : StartTag: invalid element name in ....content/plugins/soap-SGS/soap-SGS.php on line 115
如果不添加 xml 的标题,我会收到此错误。 也许还有另一种方法可以在 php 字符串中添加 xml 的标头,如果有我会很高兴你在下面写的,但现在我对另一件事感到好奇:
我怎样才能把这个 char -> <? 放在一个 php 字符串中? "在php.ini设置短标签模式时明显吗?)
编辑,我是这样使用htmlspecialchars的:
$xmlTipologie=simplexml_load_string("<?xml version='1.0' encoding='utf-8'?>".htmlspecialchars("<content><![CDATA[".$temp_dom->saveHTML()."]]></content>",ENT_QUOTES));
这是新的错误:
警告:simplexml_load_string() [function.simplexml-load-string]: 实体:第 1 行:解析器错误:需要开始标记,“
嗯...我无法调试它,这让我很受伤。
谢谢
【问题讨论】:
-
html_entity_decode()不会破坏 XML 代码吗? -
无论如何,你不能从字符串中开始/结束 PHP 模式,所以 PHP 短打开标签设置在这里应该是无关紧要的。
-
你为什么有
html_entity_decode?什么编码?你的意思是使用 htmlspecialchars 将 html 作为单个元素放在标记中,更像是使用 CDATA -
您似乎将一个 XML 文档捆绑到另一个文档中,然后立即解析第二个 XML 文档,这将返回(编码的)内部 XML。你能澄清一下你真正想要达到的目标吗?这看起来像是一个尝试的解决方案,而不是最初的问题。 (有时称为the XY problem。)
-
是的......我明白了......问题出在其他地方;)我将继续调试并尝试下次提出更好的问题。谢谢。