php - 来自 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 元素创建数组的方法保持不变。
任何人都可以在这里指出正确的方向吗?我被困了几个小时没有任何结果的测试......
解决方案
我创建了一个包来简化 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 的更多信息,我可以提供更详细的示例。
推荐阅读
- git - 如何恢复我在 git 上的推送或提交
- android - 删除多个表 execSQL
- html - HTML表格填充不起作用
- json - JSON Postman 正文不适用于 PostgreSQL 插入
- javascript - Jquery Datatable - 从服务器中提取数据 - 如何将值用作属性
- sql-server - 如果 SELECT 中的一个或多个链接服务器脱机,则链接服务器 SELECT UNION 结果
- ios - 尝试将过滤器与 Swift 4、IOS 11 一起使用时出现错误消息
- javascript - 这两行代码有什么区别?
- javascript - 反应不渲染类
- javascript - 如果未单击页面,为什么 onbeforeunload 不会触发?