如何处理,;以及SimpleXML PHP中的其他特殊字符
我使用SimpleXMLElement创建xml,但它无法处理&。这是我的密码如何处理,;以及SimpleXML PHP中的其他特殊字符,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 = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><Contacts></Contacts>');
$name = $contacts->addChild('name', 'You & Me');
$name->addAttribute('no', '1');
echo $contacts->asXML();
$contacts=新的SimpleXMLElement(“”);
$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代码或选中此选项
$contacts=新的SimpleXMLElement(“”);
$name=$contacts->addChild('name','You&;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();
$contacts=新的SimpleXMLElement(“”);
$name=$contacts->addChild('name',htmlspecialchars('You&Me',entu引号,“utf-8”);
$name->addAttribute('no','1');
echo$contacts->asXML();
这应该在不使用html代码的情况下对您有效,因为这样它会自动转义:
(因为addChild()
只转义
,而不转义&
)
$contacts=新的SimpleXMLElement(“”);
$contacts->name[0]=“你和我”;
$contacts->name[0]->addAttribute('no','1');
echo$contacts->asXML();
输出(源代码):
你及;我
如果我有一个以上同名的孩子,那么该怎么办???@Md.Yusuf然后确保这样指定:$contacts->name[2]=“You&Me”
如果您不知道号码,只想添加一个,请执行以下操作:$contacts->name[]='you&Me'
@Md.Yusuf顺便说一句:如果您想要完整解释为什么会这样处理,请参见:
$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();
$contacts = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><Contacts></Contacts>');
$contacts->name[0] = 'You & Me';
$contacts->name[0]->addAttribute('no', '1');
echo $contacts->asXML();
<?xml version="1.0" encoding="UTF-8"?>
<Contacts><name no="1">You & Me</name></Contacts>