【问题标题】:SimpleXML reformattingSimpleXML 重新格式化
【发布时间】:2017-04-05 13:56:21
【问题描述】:

我正在尝试编写一个 API 来将数据从 magento 写入我的 POS 系统。我的 POS 供应商给了我一个代码,我需要在该代码上以 XML 1.0 格式写入数据。 我使用 SimpleXML 表单编写数据,因为我需要做一些循环来获取我需要的所有数据。

问题是 API 没有读取我正确写入的数据。我已经尝试使用 DOM 重新格式化代码但没有成功。如何编辑此 SimpleXML,以便我发布的数据与 XML 1.0 一样。

显然导致问题的原因是无法读取SimpleXML的rawurlencode函数,但我的API只能这样理解......

我是 PHP 和 XML 的新手,欢迎提出任何建议。提前致谢。

$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');
	for ($k = 0; $k < $arrayl; $k++) {
    		$itemb = $itensb->addChild('item');
    		$codigob = $itemb->addChild('codigo', $infopp[$k][0]);
    		$descricaob = $itemb->addChild('descricao', $infopp[$k][1]);
			$qtdeb = $itemb->addChild('qtde', $infopp[$k][2]);
			$vlrunitb = $itemb->addChild('vlr_unit', $infopp[$k][3]);
		}
$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)
);

【问题讨论】:

    标签: php xml magento


    【解决方案1】:

    好的,这实际上很简单......我只需要创建另一个变量并将我的 SimpleXML asXML() 存储在其中

    $XMLvariable = $simpleXMLvariable->asXML();

    【讨论】:

      猜你喜欢
      • 2011-08-29
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      相关资源
      最近更新 更多