我有我已经建立了使用下面的示例XML字符串:PHP到XML插件组
//add root
$Add = $dom->appendChild($dom->createElement('Add'));
//pCase
$pCase = $Add->appendChild($dom->createElement('pCase'));
//add elements
$LeadGenID = $pCase->appendChild($dom->createElement('LeadGenID'));
$LeadGenID->appendChild($dom->createTextNode('22'));
$Debtor = $pCase->appendChild($dom->createElement('Debtor'));
//address fields
$Addresses = $Debtor->appendChild($dom->createElement('Addresses'));
$Address = $Addresses->appendChild($dom->createElement('Address'));
//array of address objects should go here
$test1 = $dom->saveXML();
$sxe = simplexml_load_string($test1);
if ($sxe === false) {
echo 'Error while parsing the document';
exit;
}
$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
echo 'Error while converting XML';
exit;
}
$dom = new DOMDocument('1.0', 'utf-8');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);
echo $dom->save('application.xml');
这则输出在我的XML如下:
<Add>
<pCase>
<LeadGenID>22</LeadGenID>
<Debtor>
<Addresses><Address/></Addresses>
</Debtor>
</pCase>
我还需要输出数组到这个XML,使之充分输出如下:
<Add>
<pCase>
<LeadGenID>22</LeadGenID>
<Debtor>
<Addresses>
<Address>
<Street>Some street</Street>
<Postcode>Some postcode</Postcode>
</Address>
</Addresses>
</Debtor>
</pCase>
我试图做到这一点使用
$address_array = array (
$_POST['Street'] => 'Street',
$_POST['Postcode'] => 'Postcode'
);
$xml = new SimpleXMLElement('<Address/>');
array_walk_recursive($address_array, array ($xml, 'addChild'));
,但在这一点上,我完全失去了。我一直在考虑这个API是稀疏的文档至少可以这样说,但我发现它接近,但我需要作为网关的阵列输入地址。我是PHP新手,因为我主要是一名前端开发人员,他通常只在PHP中完成简单的联系表单等。
我该如何输出我上面给出的XML的例子吗?
感谢
欢迎堆栈溢出。您可以使用工具栏按钮格式化源代码块。这次我已经为你修好了。 – 2013-02-18 15:37:38
'$ Address'是什么?为什么混合两种不同的PHP XML API? – 2013-02-18 15:42:06
抱歉$地址是我的XML中的一个节点。这可能不是很清楚,我只是在一个简短的例子中,所以你可以看到我使用的是什么代码。 – ajguk 2013-02-18 15:44:57