php - 如何在 SimpleXML PHP 中处理 & 和其他特殊字符

标签 php

我使用 SimpleXMLElement 创建 xml 但它无法处理 &。这是我的代码

$contacts = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><Contacts></Contacts>');
$name = $contacts->addChild('name', 'You & Me');
$name->addAttribute('no', '1');
echo $contacts->asXML();

这是输出

<?xml version="1.0" encoding="UTF-8"?>
<Contacts><name no="1">You </name></Contacts>

如何解决这个问题。我想要一个针对所有特殊字符的解决方案。

最佳答案

您必须将其替换为例如 html 代码 http://www.ascii.cl/htmlcodes.htm或查看此 http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references

$contacts = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><Contacts></Contacts>');
$name = $contacts->addChild('name', 'You &amp; Me');
$name->addAttribute('no', '1');
echo $contacts->asXML();

你也可以使用函数 htmlspecialchars 来完成它

$contacts = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><Contacts></Contacts>');
$name = $contacts->addChild('name', htmlspecialchars('You & Me', ENT_QUOTES, "utf-8"));
$name->addAttribute('no', '1');
echo $contacts->asXML();

关于php - 如何在 SimpleXML PHP 中处理 & 和其他特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28669407/

相关文章:

php - DOMPDF - 背景 url(linux 与 windows)

javascript - 有条件执行 PHP 脚本来发送电子邮件

php - 在 PHP 中创建基于边缘检测的图像

php - 我可以在 utf8mb4 mysql 数据库中安全地使用 utf8 表和列吗?

php - 防止 imagejpeg() 保存图像的 EXIF 数据(规范。FileDateTime)

php - 将加密 key 从 Laravel 5.2 迁移到 5.3

php - Mandrill SMTP 超时

javascript - 为什么我的 javascript DOM 不起作用?

php - SQL 查询对于另一个 mysql 版本执行速度较慢?

java - 寻找 Eclipse 的替代品(或没有所有错误的运行 eclipse 的方法)