PHP парсинг XML

0

У меня возникла проблема с анализом XML.

Что я делаю: я разделяю 1 XML на многие, а также редактирую несколько вещей для нового. И это работает!

Где проблема: после парсинга не все части одинаковы, чтобы быть более конкретными, в некоторых из них всего 2 показателя ставки труда, а в другом может быть 5.:

Так что некоторые выглядят так:

  <LaborRateList>
    <LaborRateDetail>
     <Role>Labor</Role>
     <Category>1</Category>
     <Rate Cur="CZK" Unit="h" MinValue="0" MaxValue="0">250.0</Rate>
    </LaborRateDetail>
    <LaborRateDetail>
     <Role>Paint</Role>
     <Category>2</Category>
     <Rate Cur="CZK" Unit="h" MinValue="0" MaxValue="0">350.0</Rate>
    </LaborRateDetail>
   </LaborRateList>

И другой:

   <LaborRateList>
    <LaborRateDetail>
     <Role>Labor</Role>
     <Category>1</Category>
     <Rate Cur="CZK" Unit="h" MinValue="0" MaxValue="0">250.0</Rate>
    </LaborRateDetail>
    <LaborRateDetail>
     <Role>Labor</Role>
     <Category>1</Category>
     <Rate Cur="CZK" Unit="h" MinValue="0" MaxValue="0">250.0</Rate>
    </LaborRateDetail>
    <LaborRateDetail>
     <Role>Labor</Role>
     <Category>1</Category>
     <Rate Cur="CZK" Unit="h" MinValue="0" MaxValue="0">250.0</Rate>
    </LaborRateDetail>
    <LaborRateDetail>
     <Role>Labor</Role>
     <Category>1</Category>
     <Rate Cur="CZK" Unit="h" MinValue="0" MaxValue="0">250.0</Rate>
    </LaborRateDetail>
    <LaborRateDetail>
     <Role>Paint</Role>
     <Category>2</Category>
     <Rate Cur="CZK" Unit="h" MinValue="0" MaxValue="0">350.0</Rate>
    </LaborRateDetail>
   </LaborRateList>

я пытался выяснить, как не вставлять ничего, если больше нет ставок труда. Я пытаюсь проверить, есть ли что-нибудь в variabile и если не писать ничего, поэтому мой код выглядит так:

//RATE3 PART     
var_dump($value->Contract->LaborRateList->LaborRateDetail[2]->Role);
    if ($value->Contract->LaborRateList->LaborRateDetail[2]->Role == 0)
//SOME CODE HERE

Но я получаю ошибку:

Notice: Trying to get property of non-object in C:\xampp\htdocs\xampp\provisioning\index.php on line 23
NULL 
Notice: Trying to get property of non-object in C:\xampp\htdocs\xampp\provisioning\index.php on line 24

Мой FULL CODE можно найти на http://pastebin.com/12HiHEcu, это моя последняя попытка, которая не работает :(

Может кто-нибудь помочь мне исправить это?

Теги:

1 ответ

0

Если я правильно понимаю, вы можете использовать другой foreach для этого:

foreach($value->Contract->LaborRateList->LaborRateDetail as $laborRateDetails) {
  //Do your stuff
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню