私はXmlExtractorを使用して、XMLファイルをPHPの配列に解析しています。PHPがXmlExtractorを使用してXMLを配列に解析する - バグ
残念ながら、繰り返し配列要素になるとバグがあります。ここで、例えば入力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>
2つの名前の要素( "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に最初のname要素の子要素に「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の著者は、これはバグであることを私に確認しました。しかし、残念ながらプロジェクトはもはや維持されておらず、これまで私自身は問題を解決することができませんでした。誰かがこれを調べて、問題の原因を特定することができますか?
著者は、ソリューションをパッケージにマージすることを確認したので、他の人にもメリットがあります。
ありがとうございます! pancid
論理的には正しいです。しかし、提供されるxmlは、コード内のバグを説明するための単なる例です。要素の名前が何であるかは関係ありませんが、問題は常に同じです。これを解決する唯一の方法は、https://github.com/pwarelis/XmlExtractor/tree/master/srcでXmlExtractorのソースコードを修正することです – pancid