2014-09-29 3 views
1

, я получил этот XML. Я получил много подобных блоков в XML, и я могу пропустить его. Но как я узнаю, сколько блоков есть? Или как я остановлюсь после последнего блока?Достигая последнего элемента XML

Любое предложение приветствуется.

<StockBalanceOut xmlns="http://schemas.microsoft.com/dynamics/2008/01/documents/BON_StockBalanceOut" class="entity"> 
<_DocumentHash>f5a598f180ccdecffeb7774d58ca8743</_DocumentHash> 
<AvailPhysicalAvailableQty>0</AvailPhysicalAvailableQty> 
<AvailPhysicalReservedQty>0</AvailPhysicalReservedQty> 
<AvailPhysicalReturnQty>0</AvailPhysicalReturnQty> 
<AvailPhysicalReworkQty>0</AvailPhysicalReworkQty> 
<AvailPhysicalScrapQty>0</AvailPhysicalScrapQty> 
<Date>2014-09-26</Date> 
<ItemId>15742-20907</ItemId> 
<ItemShippingClass>Empty</ItemShippingClass> 
<OnOrderQty>0</OnOrderQty> 
<PhysicalInventAvailableQty>0</PhysicalInventAvailableQty> 
<PhysicalInventReservedQty>0</PhysicalInventReservedQty> 
<PhysicalInventReturnQty>0</PhysicalInventReturnQty> 
<PhysicalInventReworkQty>0</PhysicalInventReworkQty> 
<PhysicalInventScrapQty>0</PhysicalInventScrapQty> 
<RecId>5637416600</RecId> 
<RecVersion>1</RecVersion> 
<Time>15:25:52</Time> 
</StockBalanceOut> 
<StockBalanceOut xmlns="http://schemas.microsoft.com/dynamics/2008/01/documents/BON_StockBalanceOut" class="entity"> 
<_DocumentHash>6c6a3aa160f3ab9388f8e1b5b2fd7dc1</_DocumentHash> 
<AvailPhysicalAvailableQty>99</AvailPhysicalAvailableQty> 
<AvailPhysicalReservedQty>0</AvailPhysicalReservedQty> 
<AvailPhysicalReturnQty>0</AvailPhysicalReturnQty> 
<AvailPhysicalReworkQty>0</AvailPhysicalReworkQty> 
<AvailPhysicalScrapQty>0</AvailPhysicalScrapQty> 
<Date>2014-09-26</Date> 
<ItemId>21234-29752</ItemId> 
<ItemShippingClass>Empty</ItemShippingClass> 
<OnOrderQty>0</OnOrderQty> 
<PhysicalInventAvailableQty>99</PhysicalInventAvailableQty> 
<PhysicalInventReservedQty>0</PhysicalInventReservedQty> 
<PhysicalInventReturnQty>0</PhysicalInventReturnQty> 
<PhysicalInventReworkQty>0</PhysicalInventReworkQty> 
<PhysicalInventScrapQty>0</PhysicalInventScrapQty> 
<RecId>5637416601</RecId> 
<RecVersion>1</RecVersion> 
<Time>15:25:52</Time> 
</StockBalanceOut> 
+0

Пожалуйста, покажите свой текущий код для «прокрутки» – Steve

+0

Когда вы говорите «блоки», что вы имеете в виду? XML-теги? –

+0

@Steve Я даже не могу начать, потому что я не знаю конечного параметра. – user3369276

ответ

1

Из вашего XML я получил эту информацию. Есть несколько «блоков» для <StockBalanceOut>, вы можете получить доступ к каждому один на: -

$objectOfXMLFile->StockBalanceOut[0]; 
$objectOfXMLFile->StockBalanceOut[1]; 

Чтобы добраться до конца вы можете запустить время цикла. Если какой-либо индекс (предположим, что 10 не существует) для StockBalanceOut не существует, то он вернет null.

$counter=0; //run from 0 
    while(!is_null($xmlOBJ->StockBalanceOut[$counter])) 
    { 
//do anything here 
    $counter++; 
    } 
1

Я хотел бы попробовать что-то вроде this. Чтобы сэкономить вам поездку по ссылке, вот несколько примеров кода, чтобы вы начали.

<?php 
$xml = <<<EOF 
<people> 
<person name="Person 1"> 
    <child/> 
    <child/> 
    <child/> 
</person> 
<person name="Person 2"> 
    <child/> 
    <child/> 
    <child/> 
    <child/> 
    <child/> 
</person> 
</people> 
EOF; 

$elem = new SimpleXMLElement($xml); 

foreach ($elem as $person) { 
    printf("%s has got %d children.\n", $person['name'], $person->count()); 
} 
?> 
Смежные вопросы