Это пример xml, который мне нужен для доступа к его элементам. В этом примере мне нужно выполнить цикл для добавления еще одного -> для перехода к другому элементу. Я буду получать значения из XML, а не генерировать XML
<Person>
<Address>
<State>
<Code>101</Code>
</State>
</Address>
</Person>
<Person>
<Address>
<State>
<Code>101</Code>
</State>
<Phone> 123456789</Phone>
</Address>
</Person>
Код:
for($i=0; $i< count(Person); $i++)
{
$element .= '->{<<element>>['.$i.']}';
}
//output would something be like an element to get data from XML: `
$person->{'Address'}->{'State'}->{'Code'};`
привет, я не пытаюсь сгенерировать XML, я получаю доступ к его элементу динамически






Я думаю, вы можете использовать SimpleXML.
$item в цикле относится к типу SimpleXMLElement, из которого вы можете получить такие свойства, как $item->Address->State->Code.
$data = <<<DATA
<Persons>
<Person>
<Address>
<State>
<Code>101</Code>
</State>
</Address>
</Person>
<Person>
<Address>
<State>
<Code>101</Code>
</State>
<Phone> 123456789</Phone>
</Address>
</Person>
</Persons>
DATA;
$items = simplexml_load_string($data);
foreach ($items as $item) {
echo $item->Address->State->Code;
}
Если вы хотите использовать цикл for и счетчик, вы можете использовать:
$items = simplexml_load_string($data);
$count = count($items->Person);
for ($i = 0; $i < $count; $i++) {
echo $items->Person[$i]->Address->State->Code;
}
Для этого: foreach ($items as $item) { echo $item->Address->State->Code; } есть способ сделать что-то вроде $total_elements_inside_item= count($items); for($i=0;$i<=$total_elements_inside_item $i++) { $item->{element[0]} then next loop wil be $item->{element[1]}->{element[2]} }
@djan Я добавил обновление к своему ответу. Но почему бы не использовать foreach?
Возможный дубликат Как динамически сгенерировать файл XML с помощью PHP?