выберите первый дочерний узел корневого узла в файле XML, используя php - PullRequest
1 голос
/ 29 ноября 2010

Я новичок в XML и до сих пор сумел получить корневой узел XML, используя это в php ...

function xmlRootNode($xmlfile){
    $xml = simplexml_load_string(file_get_contents($xmlfile));
    $xml = $xml->getName();
    echo $xml;
}

И теперь я хочу использовать этот корневой узелузнать имя его дочернего узла.Например, файл с нижеуказанным выводит «food» в качестве корня, используя вышеуказанную функцию.Как бы я теперь использовал это, чтобы вернуть его дочернее имя 'fruit'?

<food>
  <fruit>
    <type>apples</type>
  </fruit>
</food>

В конечном итоге я пытаюсь выяснить имя дочернего узла корневого узла, чтобы затем использовать егодругая функция, которая считает, сколько их.Я гуглял и баловался с разными идеями, но думаю, что я где-то упускаю простой процесс, поэтому любые идеи будут оценены.

Ответы [ 2 ]

3 голосов
/ 29 ноября 2010

Попробуйте

/* get list of fruits under food */
$fruits = $xml->children();

/* or treat the $xml as array */
foreach ($xml as $fruit)
{
   /* your processing */
}

Дополнительно, ниже избыточно,

$xml = simplexml_load_string(file_get_contents($xmlfile));

переключите его на

$xml = simplexml_load_file($xmlfile);
1 голос
/ 22 июня 2011
// The following code block illustrates how you can get at the name of each child
$columnCDValues = array();
foreach ($simpleXMLElement->profile->children() as $child)
{
    $name = $child->getName();
    $value = $simpleXMLElement->profile->$name;         
    $columnCDValues[$child->getName()] = $value;
}
...