Php 从ENT_引号输出SimpleXML时出现问题

Php 从ENT_引号输出SimpleXML时出现问题,php,simplexml,Php,Simplexml,我有一个表格,我试图确保我处理特殊字符。 表单中的一个字段是Title,在表单中定义为input type='text'。 作为测试输入的值类似于(安和安迪的第一张“测试”图)。 为清楚起见,输入的文本仅为括号内的内容,不包括括号 我将标题发布到变量中,如下所示: if (isset($_POST["submitupdate"])) { $form_title = htmlspecialchars($_POST["title"], ENT_QUOTES, 'UTF-8'); } 在流程结束时

我有一个表格,我试图确保我处理特殊字符。 表单中的一个字段是Title,在表单中定义为input type='text'。 作为测试输入的值类似于(安和安迪的第一张“测试”图)。 为清楚起见,输入的文本仅为括号内的内容,不包括括号

我将标题发布到变量中,如下所示:

if (isset($_POST["submitupdate"]))  {
$form_title = htmlspecialchars($_POST["title"], ENT_QUOTES, 'UTF-8');
}
在流程结束时,我将$form_title中的值写入XML节点:

$xml = simplexml_load_file('mydata.xml');
$sxe = new SimpleXMLElement($xml->asXML());
$newparent = $sxe->addChild("Book");
$newparent->addChild("Title", $form_title);
$sxe->asXML('mydata.xml');
我检查XML文件以查找文件中的文本,该文件显示为
Ann&;安迪的第一张“测试”图片
,而不是我期望得到的,应该是安&;Andy$apos;s第一次“测试”Pic

为了回答最明显的问题,我使用的是ENT_引号,而不是ENT_引号。 为了确保我没有失去理智,我尝试了两种方法,但都得到了完全相同的结果

我一辈子都搞不懂这件事。有什么想法吗


标题和问题根据deceze的建议更新。

您是如何创建该XML文件的?如下:$XML=simplexml_load_file('mydata.XML')$sxe=新的simplexmlement($xml->asXML())$newparent=$sxe->addChild(“Book”)$newparent->addChild(“Title”,$form\u Title)$sxe->asXML('mydata.xml');您的问题实际上更多的是关于SimpleXML,而不是
ENT\u QUOTES
。你应该相应地重写它;并将该代码添加到您的问题中!另请参见。在deceze提供的链接中,指出“addChild方法是”添加我告诉您要添加的内容“方法”。因此,如果我使用ENT_引号转义特殊字符,我希望在生成的xml中看到转义字符。但我得到的是xml中的实际字符,而不是转义版本,因此我看不出这篇文章对我的问题有答案。根据我所做的研究和对各种方法的测试,似乎无法使用SimpleXML AddChild将引号写入xml文件。任何这样做的方法都会导致引号字符在写入时不被替换。如果有人认为他们有我没有尝试过的解决方案,我洗耳恭听。