【发布时间】:2017-01-07 22:25:49
【问题描述】:
我正在使用XmlExtractor 将 XML 文件解析为 PHP 中的数组。
不幸的是,当涉及到重复的数组元素时,存在一个错误。这是输入 Earth.xml 的示例:
<earth>
<people>
<person>
<name id = "1">
<first>Paul</first>
<last>Warelis</last>
</name>
<name id = "2">
<first>George</first>
<last>Stein</last>
</name>
<gender>Male</gender>
<skill>Javascript</skill>
<skill>PHP</skill>
<skill>Beer</skill>
</person>
</people>
</earth>
有两个名称元素(一个带有“id = 1'”,另一个带有“id =2”)。我想把整个 XML 变成一个数组。这是代码:
$source = new XmlExtractor("earth", $file);
foreach ($source as $people) {
$result = $people->export(true);
}
echo '<pre>';
print_r($result);
echo '</pre>';
但是,在这种情况下,XmlExtractor 会将“id = 2”的名称元素转换为第一个名称元素的子元素。这是输出:
Array
(
[people] => Array
(
[person] => Array
(
[name] => Array
(
[id] => 1
[first] => Paul
[last] => Warelis
[name] => Array
(
[id] => 2
[first] => George
[last] => Stein
)
)
[gender] => Male
[skill] => Array
(
[0] => Javascript
[1] => PHP
[2] => Beer
)
)
)
)
XmlExtractor 的作者已向我确认这是一个错误。但是,不幸的是,该项目不再维护,到目前为止我还无法自己解决问题。任何人都能够对此进行调查并确定问题的根源吗?
作者已确认他会将解决方案合并到包中,以便其他人也可以受益。
谢谢! 潘西迪
【问题讨论】:
标签: php xml parsing xml-parsing html-parsing