我可以在不查找元素名称的情况下获得XML文件结构吗


Can I get an XML files structure without looking up the element names myself?

使用PHP,我希望能够打开一个XML文件并获取其结构,而无需了解任何结构。这可能吗?

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

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

例如

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

我希望能够识别这个结构,而不必首先手动查看文件。

很乐意使用XMLReader以外的其他库,但需要坚持使用PHP。

谢谢!

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文件