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>
두 명 요소 ("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의 저자는 저에게 버그임을 확인했습니다. 그러나, 불행히도 프로젝트는 더 이상 유지되지 않고 지금까지 문제를 직접 해결할 수 없었습니다. 누구든지이 문제를 조사하고 문제의 원인을 파악할 수 있습니까?
작성자는 솔루션을 패키지에 병합하여 다른 사용자도 혜택을 얻을 수 있음을 확인했습니다.
감사합니다. pancid
논리적으로는 올바른 것입니다. 그러나 제공된 xml은 코드의 버그를 설명하기위한 예일뿐입니다. 요소의 이름이 무엇인지는 중요하지 않습니다. 문제는 항상 동일합니다. 이 문제를 해결할 수있는 유일한 방법은 https://github.com/pwarelis/XmlExtractor/tree/master/src에서 XmlExtractor의 소스 코드를 수정하는 것입니다. – pancid