【发布时间】:2019-06-04 08:35:56
【问题描述】:
我在使用 PHP 5.6 显示 XML 文档中的 & 字符时遇到问题(现在不能使用 PHP 7.x)
我尝试使用 str_replace()、preg_replace 和其他一些函数: Unable to Parse ampersand in PHP string
这里:PHP not have a function for XML-safe entity decode? Not have some xml_entity_decode?
我还注意到 & 字符是 PHP 5.2.x (https://bugs.php.net/bug.php?id=39521) 中的一个问题,尽管我认为这已得到解决。
这里有一些我尝试做的例子:
$string = "SOMETHING & OTHER THINGS";
$string = str_replace('&', '&' $string);
$element = $domDocument->createElement('myElement', $string);
$rootElement->appendChild($element);
当我发现我尝试过的错误时:
$string = "SOMETHING & OTHER THINGS";
$string = str_replace('&', '&' $string);
$element = $domDocument->createElement('myElement');
$element->appendChild( $domDocument->createTextNode($string) );
$rootElement->appendChild($element);
我的预期是:
<myElement>SOMETHING & OTHER THINGS</myElement>
我得到了什么:
<myElement>SOMETHING & OTHER THINGS</myElement>
或者有时:
<myElement/>
编辑:也许我应该补充一点,我的软件必须下载文件。因此,当我使用 Notepad++ 打开 xml 文件时,我得到了上面显示的结果。
无法真正解决这个问题,感谢任何帮助。 谢谢。
【问题讨论】:
-
这个编码有什么问题?
-
这是在 XML 中编码
&的正确方法。DOMDocument会自动为你做,你不需要做任何特别的事情。当您解析文档时,它将被转换回&。 -
问题是我需要显示
SOMETHING & OTHER THINGS 不是这个:SOMETHING &其他事情 -
@ChrisFederico:这不是格式良好的 XML。
-
你能再精确一点吗?
标签: php xml entities ampersand