php - PHP - 元素中带有点的 XML (Laravel)
问题描述
我将这个解析器包用于 Laravel:https ://github.com/orchestral/parser
我有一个如下所示的 XML:
<MilestonesFollow-upReportUSERDEFINEDItem>
<NextMilestoneDescCur.Comp.InclRltd>Description of the stone</NextMilestoneDescCur.Comp.InclRltd>
</MilestonesFollow-upReportUSERDEFINEDItem>
但是,由于元素.
名称中带有点,因此它会将其视为一个新元素。这就是我解析它的方式:
$data = $xml->parse([
'milestones' => ['uses' => 'MilestonesFollow-upReportUSERDEFINEDItem[NextMilestoneDescCur.Comp.InclRltd]', 'default' => null]
]);
但是,这给了我下面的数组,它由点分隔.
:
array:1 [▼
"milestones" => array:524 [▼
0 => array:1 [▼
"NextMilestoneDescCur" => array:1 [▼
"Comp" => array:1 [▼
"InclRltd" => null
]
]
]
]
解决方案
我创建了一个包,可以帮助您将 xml 解析为数组。
https://github.com/mtownsend5512/xml-to-array
$xml = '<MilestonesFollow-upReportUSERDEFINEDItem><NextMilestoneDescCur.Comp.InclRltd>Description of the stone</NextMilestoneDescCur.Comp.InclRltd></MilestonesFollow-upReportUSERDEFINEDItem>';
dd(xml_to_array($xml));
// Will yield:
array:1 [▼
"NextMilestoneDescCur.Comp.InclRltd" => "Description of the stone"
]
推荐阅读
- c# - net-core2.0 中带有 NLog 的 DI
- django - 如何解决“AttributeError”类型的对象不是 JSON 可序列化的?
- android - 未找到处理 Intent { act=android.intent.action.VIEW dat=fb://page/FACEBOOK_PAGE_ID 的活动
- javascript - 使用自定义 css 自定义 DirectionsRenderer 面板
- android - 当调用段中的文本的Value_Changed在android中与垂直对齐时
- laravel - Service Provider模式有什么好处?
- javascript - 无法使用点表示法访问 json 数据,这真的很奇怪
- beautifulsoup - 从 bs4.BeautifulSoup 获取 url 链接
- node.js - 如何设置 Informix 环境变量以部署到 Heroku
- c# - SEC7123:访问控制允许标头列表中不存在请求标头密钥