使用php选择XML文件中根节点的第一个子节点

时间:2010-11-29 19:28:10

标签: php simplexml

我是XML的新手,到目前为止设法在php中使用它来获取XML的根节点...

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 个答案:

答案 0 :(得分:3)

尝试

/* 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 :(得分:1)

// 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;
}