Поэтому у меня есть XML в следующем формате, который я читаю из файла test.xml,
<XML> <Agent ID="ABC123"> <Property> <Code>XYZ</Code> <Name>Hotel 1</Name> </Property> <Property> <Code>237</Code> <Name>Hotel 2</Name> </Property> <Property> <Code>213</Code> <Name>Hotel 3</Name> </Property> </Agent> <Agent ID="DEF456"> <Property> <Code>333</Code> <Name>Hotel 4</Name> </Property> <Property> <Code>23423</Code> <Name>Hotel 5</Name> </Property> </Agent> <Agent ID="GHI789"> <Property> <Code>45345</Code> <Name>Hotel 6</Name> </Property> </Agent> </XML>
Я хочу, чтобы вывести вышеупомянутое в следующем формате:
Agent | Code | Name ABC123 | XYZ | Hotel 1 ABC123 | 237 | Hotel 2 ......
Как мне это сделать, поскольку в каждом агенте есть несколько агентов и различное количество свойств?
У меня есть опыт использования XMLReader, но я счастлив попробовать альтернативу, такую как SimpleXML.
Я думаю, мне нужно будет использовать цикл Foreach на этом (Foreach Agent ….), но не совсем уверен, с чего начать.
Благодаря!
Посмотри на это:
$sxe = new SimpleXMLElement($xmlstr); echo 'Agent | Code | Name'.PHP_EOL; foreach ( $sxe->Agent as $agent ) { $attr = $agent->attributes(); foreach ( $agent->Property as $property ) { echo $attr['ID'].' | '.$property->Code.' | '.$property->Name.PHP_EOL; } }