2017-04-05 10 views
0

私はPOSシステムにmagentoからデータを書き込むAPIを書こうとしています。私のPOSサプライヤはXML 1.0形式でデータを書く必要のあるコードを私に提供します。 私は必要なすべてのデータを得るためにいくつかのループを行う必要があるので、SimpleXMLフォームを使用してデータを書きました。SimpleXML再フォーマット

問題は、APIが正しく書き込んだデータを読み取っていないことです。私は既にDOMを使用してコードを再フォーマットして成功を収めようとしました。このSimpleXMLをどのように編集すれば、私が投稿するデータはXML 1.0のようになります。私はPHPとXMLに新しいですので、何か提案は歓迎されている問題を引き起こして何どうやら

はSimpleXMLをを読み取ることができませんrawurlencode機能ですが、私のAPIにのみ、この方法を理解して...

。前もって感謝します。

$xml = '<?xml version="1.0" encoding="UTF-8"?><pedido></pedido>'; 
 
$xmlpost = new SimpleXMLElement($xml); 
 
$pedidob = $xmlpost->addChild('pedido'); 
 
$clienteb = $pedidob->addChild('cliente'); 
 
$clientebno = $clienteb->addChild('nome',$nome); 
 
$clientebcp = $clienteb->addChild('cpf_cnpj',$cpf); 
 
$clienteben = $clienteb->addChild('endereco',$rua); 
 
$clientebnu = $clienteb->addChild('numero',$numero); 
 
$clientebco = $clienteb->addChild('complemento',$complemento); 
 
$clientebba = $clienteb->addChild('bairro',$bairro); 
 
$clientebce = $clienteb->addChild('cep',$cep); 
 
$clientebci = $clienteb->addChild('cidade',$cidade); 
 
$clientebuf = $clienteb->addChild('uf',$estado); 
 
$clientebfo = $clienteb->addChild('fone',$telefone); 
 
$clientebce = $clienteb->addChild('celular',$celular); 
 
$clientebem = $clienteb->addChild('email',$email); 
 
$itensb = $pedidob->addChild('itens'); 
 
\t for ($k = 0; $k < $arrayl; $k++) { 
 
    \t \t $itemb = $itensb->addChild('item'); 
 
    \t \t $codigob = $itemb->addChild('codigo', $infopp[$k][0]); 
 
    \t \t $descricaob = $itemb->addChild('descricao', $infopp[$k][1]); 
 
\t \t \t $qtdeb = $itemb->addChild('qtde', $infopp[$k][2]); 
 
\t \t \t $vlrunitb = $itemb->addChild('vlr_unit', $infopp[$k][3]); 
 
\t \t } 
 
$parcelasb= $pedidob->addChild('parcelas'); 
 
$parcelab = $parcelasb->addChild('parcela'); 
 
$vlrb = $parcelab->addChild('vlr',$Subtotal); 
 
$freteb = $pedidob->addChild('vlr_frete',$Shipping); 
 

 
$dom = new DOMDocument('1.0'); 
 
$dom->preserveWhiteSpace = true; 
 
$dom->formatOutput = true; 
 
$dom->loadXML($xmlpost->asXML()); 
 
echo $dom->saveXML(); 
 

 
$posts = array (
 
    "apikey" => "*******", 
 
    "xml" => rawurlencode($xmlpost) 
 
);

答えて

0

[OK]を、これはその中に)私は別の変数を作成し、私のSimpleXML asXMLを(格納するために必要な...実際には非常に簡単だった

$ XMLvariable = $ simpleXMLvariable-> asXML();