2013-04-02 71 views
1

PHP迭代的SimpleXML我有SimpleXML对象看起来如下在foreach循环

<?xml version="1.0"?> 
<SalesInvoices xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://api.unleashedsoftware.com/version/1"> 
    <SalesInvoice> 
     <OrderNumber>100</OrderNumber> 
    </SalesInvoice> 
    <SalesInvoice> 
     <OrderNumber>101</OrderNumber> 
    </SalesInvoice> 
</SalesInvoices> 

我想通过它进行迭代并打印订单号。我使用这个脚本:

foreach ($xml->SalesInvoices->SalesInvoice as $salesinvoice) { 
    echo "hello"; 
    echo $salesinvoice->OrderNumber; 
} 

当我做到这一点我没有得到任何输出循环可言,甚至连“你好”不打印。我究竟做错了什么?

回答

2

<?php 

$string = '<?xml version="1.0"?> 
<SalesInvoices xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://api.unleashedsoftware.com/version/1"> 
    <SalesInvoice> 
     <OrderNumber>100</OrderNumber> 
    </SalesInvoice> 
    <SalesInvoice> 
     <OrderNumber>101</OrderNumber> 
    </SalesInvoice> 
</SalesInvoices>'; 
$xml = simplexml_load_string($string); 

foreach($xml as $SalesInvoice) { 
    print $SalesInvoice->OrderNumber; 
} 
+0

感谢您的回复,遗憾的是不工作 –

+0

我编辑的回应。 SalesInvoices(复数)是根元素,所以它不需要被打散。因为它包含的所有是SaleInvoice元素你可以'的foreach($ xml'直接 – jcbwlkr

+0

谢谢你的好先生,我现在的生活是值得的再次 –