嗨,伙计们,我想用simplexmlement在php中伪装一个xml文件。
<OrderResponse>
<OrderResponseReferences>
<BuyersOrderNumber Preserve="true">100000002</BuyersOrderNumber>
<SuppliersOrderReference Preserve="true">6711637</SuppliersOrderReference>
</OrderResponseReferences>
</OrderResponse>
我正在使用下面的代码访问BuyerOrderNumber
$local_file_path = "C:/etrade_files/Orders/order_acknowledgements/ORA1707220-05-2015--16-48-31.xml";
$xml = simplexml_load_file($local_file_path);
foreach($xml->children() as $child)
{
$child = $child->getName();
if($child == "OrderResponseReferences")
{
$order_reference = $xml->$child->BuyersOrderNumber;
print_r($order_reference);
}
}
结果:
SimpleXMLElement Object ( [@attributes] => Array ( [Preserve] => true ) [0] => 100000002 )
我怎么才能得到100000002的订单号
此外,这个文件有多个订单行,如果有人能解释逻辑,我可以用它来获得所有需要的信息,这将真的帮助我。
<OrderResponseLine>
<LineNumber>1</LineNumber>
<OrderResponseLineReferences>
<BuyersOrderLineReference Preserve="true">100000002</BuyersOrderLineReference>
</OrderResponseLineReferences>
<Product>
<SuppliersProductCode>108696</SuppliersProductCode>
</Product>
<Quantity>
<Amount>2</Amount>
</Quantity>
<LineTotal>331.18</LineTotal>
</OrderResponseLine>
这是我第一次使用XML,如果有人能帮忙,我将不胜感激。谢谢您。
最佳答案
如果将对象强制转换为字符串,它将使用其值并将其转换为:
print_r((string) $order_reference);
// 100000002
我试过你的代码,你做得很好!只要
(string)
就足以运行脚本。