来自xml文件的PHP数组-获取未知的对象名称和属性

时间:2018-10-22 16:11:25

标签: php arrays xml simplexml

我加载这样的xml文件:

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

然后我创建了一个数组:

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

数组的内容如下:

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

                )

        )

)

现在,我要获取 SimpleXMLElement对象的名称 =“ haus” 和属性 =“ haustyp”和“ ZWEIFAMILIENHAUS”用于在网站上输出它们。

“ haus”,“ haustyp”和“ ZWEIFAMILIENHAUS”之类的值可以变化,因此我不能依靠这些“关键字”来访问它们。只是从xml-element创建数组的方法保持不变。

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

1 个答案:

答案 0 :(得分:0)

我创建了一个软件包来简化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'));

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

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