【问题标题】:Can I get an XML files structure without looking up the element names myself?我可以在不自己查找元素名称的情况下获得 XML 文件结构吗?
【发布时间】:2012-02-25 00:06:47
【问题描述】:

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

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

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

例如

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

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

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

谢谢!

【问题讨论】:

  • 你可能在谈论DOM
  • 你想达到什么目的?你说的识别是什么意思?当然,您可以读取元素名称,但这是您真正需要的吗?
  • 如果有一个不错的 DTD 或 XSD 来搭配 XML,那么可以!但是现在许多 XML 文件没有引用任何结构的定义文件,它们只是“临时”放在一起,看起来像 XML 的东西

标签: php xml xmlreader


【解决方案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 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    相关资源
    最近更新 更多