我有一个使用以下示例构建的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示例?
由于
答案 0 :(得分:0)
我发现随机怪异的东西:
new SimpleXMLElement('<Address/>')
开始,但您的根节点为<Addresses>
$Address
变量突然出现$dom
对象突然冒出来createTextNode()
:
SimpleXMLElement
实例答案 1 :(得分:0)
看看http://www.lalit.org/lab/convert-php-array-to-xml-with-attributes/ 如果您只需要xml数组,那么这是一个非常小且使用简单的库。