私は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)
);