从$_POST数组加载XML字符串


Load XML string from $_POST array

在数据库上执行某个操作后,我从系统收到一个$_POST数组。我已经尝试访问数组并将其保存为一个简单的_xml对象。到目前为止,我还没有成功。正在发送的数组如下所示。

Array
(
     [xml] => <?xml version='"1.0'"?>
     <callback><profile><id>313009</id><fields><email>tomkriek@gmail.com</email><nieuwsbrief>8</nieuwsbrief></fields><interests></interests></profile><action>update</action><parameters><nieuwsbrief>8</nieuwsbrief></parameters></callback>
)

我试着把它存储为一个像这样的simple_xml对象。

if($xml_test = simplexml_load_string($_POST['xml']))
{
    $xml_test->saveXML('test.xml');
}

我可以保存一个不同类型的.xml文件,这样我就可以确保权限设置正确。至于其他部分,我对格式化和解析.xml文件不太熟悉,所以我希望任何人都能帮助我。

我想要的结果是,我可以访问新创建的simple_xml对象并访问值和字段。

需要stripslashes():

$string = stripslashes($_POST['xml']);
if($xml_test = simplexml_load_string($string))
{
    $xml_test->saveXML('test.xml');
}

最好在php.ini中关闭magic_quotes_gpc

saveXML()将把XML写入文件中。如果你想访问XML元素,你需要做一些类似的事情

    $action = $xml_test->action;
    echo $action;

你可以尝试打印出simplexml对象,这样你就可以通过来查看它的结构

    print_r($xml_test);