首页 > 解决方案 > 来自 xml 文件的 PHP 数组 - 获取未知的对象名称和属性

问题描述

我像这样加载一个xml文件:

$xml = simplexml_load_file('test.xml'); 

然后我创建了一个数组:

$array= $xml->xpath('//objektart');

数组的内容如下所示:

Array
(
    [0] => SimpleXMLElement Object
        (
            [haus] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [haustyp] => ZWEIFAMILIENHAUS
                        )

                )

        )

)

现在我想获取SimpleXMLElement Object = "haus" 的名称和属性= "haustyp" 和 "ZWEIFAMILIENHAUS" 以便在网站上输出它们。

“haus”、“haustyp”和“ZWEIFAMILIENHAUS”等值可能会有所不同,所以我不能依赖这些“关键字”来访问它们。只是从 xml 元素创建数组的方法保持不变。

任何人都可以在这里指出正确的方向吗?我被困了几个小时没有任何结果的测试......

标签: phparraysxmlsimplexml

解决方案


我创建了一个包来简化 php 中的 xml 转换。你可以在这里找到它:

https://github.com/mtownsend5512/xml-to-array/blob/master/src/XmlToArray.php

它将允许您像这样转换您的 xml:

$xml = \Mtownsend\XmlToArray\XmlToArray::convert(file_get_contents('test.xml'));

然后你可以检查 php 数组,print_r($xml);如果属性被拾取,它们将在一个@attributes键中。您可以自由使用 PHP 的许多数组函数来操作和循环数组。

如果您提供有关您的实际 xml 的更多信息,我可以提供更详细的示例。


推荐阅读