php+变量登陆xml,php - 将子节点添加到XML变量 - PHP - SO中文参考 - www.soinside.com

我试图填充需要使用php curl发送的SOAP请求的值。我已经使用soap.xml请求设置了一个变量,并获得了所有需要传递的数据。

$shipBody = '<?xml version="1.0" encoding="utf-8"?>

'.$username.'

'.$password.'

'.$carrierName.'

'.$carrierService.'

'.$xml_data->children('itemdatastring')->asXML().'

'.$xml_data->asXML().'

'.$exId.'

'.$parcelId.'

'.$shipDate.'

'.$shipDate.'

https://tools.usps.com/go/TrackConfirmAction?tLabels='.$trackingUrl.'

true

';

我能够创建一个函数来获取所有行项目的sku和qty,但是我很难将返回值传递给$ shipBody变量。这是一个示例订单项;

$myShipment = array (

array(

'sku' => 'BA2222222',

'qty' => '2'

),

array(

'sku' => 'BA111111',

'qty' => '4'

),

);

以下是我目前如何获取订单项的XML。

function array_to_xml( $dataToConvert, $xml_data ) {

foreach( $dataToConvert as $key => $value ) {

if( is_numeric($key) ){

$key = 'items'; //dealing with <0/>.. issues

}

if( is_array($value) ) {

$subnode = $xml_data->addChild($key);

array_to_xml($value, $subnode);

} else {

$xml_data->addChild("$key",htmlspecialchars("$value"));

}

}

}

$orderLineItems = array();

foreach ($myShipment as $orderItem) {

$orderItemSku = $orderItem['sku'];

$orderItemQty = $orderItem['qty'];

$orderLineItems[] = array(

'quantity' => $orderItemQty,

'sku' => $orderItemSku

);

}

$xml_data = new SimpleXMLElement('');

array_to_xml($orderLineItems,$xml_data);

最后,这是完成的文件应该是什么样子;

'.$username.'

'.$password.'

'.$carrierName.'

'.$carrierService.'

2

BA2222222

4

BA111111

'.$exId.'

'.$parcelId.'

'.$shipDate.'

'.$shipDate.'

https://tools.usps.com/go/TrackConfirmAction?tLabels='.$trackingUrl.'

true

任何帮助/指针将非常感激。谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值