PHP: передача узла xml в функцию

#php #xml #function #iteration

#php #xml #функция #итерация

Вопрос:

я пытаюсь передать xml-узел функции, но не могу понять, как это сделать — вот моя xml-разметка:

 <?xml version="1.0" encoding="ISO-8859-1" ?>
<root>
<form>
<item>
    <id>frm1</id>
    <dbID>1</dbID>
    <visible>1</visible>
</item>
</form>
<form>
<item>
    <id>frm2</id>
    <dbID>2</dbID>
    <visible>1</visible>
</item>
</form>
</root>
  

при настройке цикла foreach — каков синтаксис для итерации по xml и передачи всего узла функции?
я пробовал что-то вроде:

 foreach($xml as $ctlXML => $value)
{
    $ctl = generateCTL($ctlXML);
}
  

но это работает не так, как должно.

Спасибо

Комментарии:

1. Вы должны показать нам немного больше кода, например, как вы загружаете XML (simplexml ? DOM ?) , как вы вызываете функцию, что вы получаете и что вы хотели бы получить.

Ответ №1:

Если вы используете SimpleXML, это просто, как

 $xml = simplexml_load_file($path_to_file);
foreach($xml->form as $form){
    $ctl = generateCTL($form->item);
}
  

Будьте осторожны — $form->item — это объект

Комментарии:

1. Это должно быть foreach($xml->form as $form)