2016-07-26 2 views
0

Wie kann ich Dokumentzeilen der XML-Datei in PHP lesen, indem Sie loop verwenden? Lassen Sie mich Ihnen ein Beispiel zeigen, Dies ist XML-TagsWie kann ich Dokumentzeilen von XML-Dateien in PHP lesen, indem ich loop?

<?xml version="1.0" encoding="utf-8"?> 
<GRPO>  
<Goods> 
<CardCode>V10000</CardCode> 
<DocDueDate>07/11/2016</DocDueDate> 
<GoodsLines> 
    <Line> 
     <ItemNo>A00003</ItemNo> 
     <Quantity>4</Quantity> 
     <UnitPrice>4000</UnitPrice> 
    </Line> 
    <Line> 
     <ItemNo>A00004</ItemNo> 
     <Quantity>5</Quantity> 
     <UnitPrice>5000</UnitPrice> 
    </Line> 
</GoodsLines> 
</Goods>   
</GRPO> 

Die PHP-Codes der XML-Datei

<?php 
$xml=simplexml_load_file("GRPO.xml"); 
foreach($xml->children() as $Line) 
{ 
echo"$Line->ItemNo"; 
echo"$Line->Quantity"; 
echo"$Line->UnitPrice"; 
} 
?> 

Das Problem ist hier zu lesen ist keine Daten angezeigt werden. Was kann ich in meinen Codes tun, um Werte von Linien mit loop auszudrucken?

Bitte jeder kann mir helfen.

Antwort

1

Sie greifen nicht auf die korrekte XML-Ebene zu. Die children()-Methode greift nur auf direkte untergeordnete Elemente des Dokuments zu, sodass Sie nur über den Knoten Goods iterieren.

Ihre Schleife muss so etwas wie folgt aussehen:

foreach ($xml->Goods->GoodsLines->Line as $Line) 
{ 
    echo $Line->ItemNo; 
    echo $Line->Quantity; 
    echo $Line->UnitPrice; 
} 
+0

Vielen Dank iainn, das stimmt. –