我是否可以在不查找元素名称的情况下获取XML文件结构?

时间:2012-02-02 10:19:42

标签: php xml xmlreader

使用PHP,我希望能够打开XML文件并获得其结构,而无需了解任何有关该结构的信息。这可能吗?

到目前为止我一直在使用XMLReader,但是我正在解析各种各样的结构,因此需要一段时间来手动浏览每个文件并确定结构。

我只需要打开第一个父节点,因为之后每个节点都是相同的。

e.g。

<name>
<first></first>
<second></second>
</name>

我希望能够识别此结构,而无需先手动查看该文件。

很高兴使用除XMLReader之外的其他库,但需要坚持使用PHP。

谢谢!

1 个答案:

答案 0 :(得分:1)

DOMDocument应该能够做到。

$dom = new DOMDocument();
$dom->loadHTML($xml_data);
/* @var $names DOMNodeList */
$names = $dom->getElementsByTagName('name');
for($i=0;$i<$names->length;$i++){
    $node = $names->item($i);
    if($node->nodeName=='first'){
        $first_name = $node->nodeValue;  // store this
    }elseif($node->nodeName=='second'){
        $second_name = $node->nodeValue; // store this
    }
}

确保它们是有效的XML文件。