Вы можете использовать объект SimpleXML
(или его свойства) в цикле foreach
. Если вы хотите просмотреть все «записи», то для доступа к данным и их отображения можно использовать нечто подобное:
//Loop through all the members of the Item array
//(essentially your two database rows).
foreach($SimpleXML->body->QueryWithAttributesResult->Item as $Item){
//Now you can access the 'row' data using $Item in this case
//two elements, a name and an array of key/value pairs
echo $Item->Name;
//Loop through the attribute array to access the 'fields'.
foreach($Item->Attribute as $Attribute){
//Each attribute has two elements, name and value.
echo $Attribute->Name . ": " . $Attribute->Value;
}
}
Обратите внимание, что $ Item будет объектом SimpleXML, как и $ Attribute, поэтому на них нужно ссылаться как на объекты, а не на массивы.
Хотя приведенный выше пример кода циклически перебирает массивы в объекте SimpleXML ($ SimpleXML-> body-> QueryWithAttributesResult-> Item), вы также можете перебирать объект SimpleXML (например, $ SimpleXML-> body-> QueryWithAttributesResult- > Item [0]), и это даст вам каждое из свойств объекта.
Каждый дочерний элемент объекта SimpleXML является сущностью XML. Если сущность (тег) XML не является уникальной, то этот элемент является просто массивом объектов SimpleXML, представляющих каждую сущность.
Если вы хотите, это должно создать более общий массив строк / полей из вашего объекта SimpleXML (или приблизить вас):
foreach($SimpleXML->body->QueryWithAttributesResult->Item as $Item){
foreach($Item->Attribute as $Attribute){
$rows[$Item->Name][$Attribute->Name] = $Attribute->Value;
}
}
//Now you have an array that looks like:
$rows['message12413344443260']['active'] = 1;
$rows['message12413344443260']['user'] = 'john';
//etc.