从$ _POST数组加载XML字符串

时间:2014-04-16 16:02:06

标签: php xml simplexml

在对数据库执行某个操作后,我从系统收到$ _POST数组。我试过访问数组并将其保存为simple_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对象并访问值和字段。

2 个答案:

答案 0 :(得分:1)

需要stripslashes()

$string = stripslashes($_POST['xml']);

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

最好在php.ini中关闭magic_quotes_gpc

答案 1 :(得分:0)

saveXML()会将XML写入文件中。如果要访问XML元素,则需要执行类似

的操作
    $action = $xml_test->action;
    echo $action;

您可以尝试打印出simplexml对象,以便通过执行

查看其结构
    print_r($xml_test);