У меня возникла проблема с анализом 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, это моя последняя попытка, которая не работает :(
Может кто-нибудь помочь мне исправить это?
Если я правильно понимаю, вы можете использовать другой foreach для этого:
foreach($value->Contract->LaborRateList->LaborRateDetail as $laborRateDetails) {
//Do your stuff
}