XML 파일을 반복하고 그 값으로 배열 된 노드를 배열 (key => value)에 저장하려고합니다. 또한 전달 된 노드를 추적하기를 원합니다 (array (users_user_name => "myName", users_user_email => "myEmail") 등).xml 파일을 반복하는 재귀 PHP 함수가 필요합니다.
이 작업을 수행하는 방법을 알고 있지만 문제가 있습니다. 모든 노드에는 자식이있을 수 있으며 해당 자식에는 자식 등이있을 수 있습니다. 그래서 마지막 자식에 도달 할 때까지 반복적으로 자식을 반복하는 재귀 함수가 필요합니다.
지금까지 나는이있어 :
//loads the xml file and creates simpleXML object
$xml = simplexml_load_string($content);
// for each root value
foreach ($xml->children() as $children) {
// for each child of the root node
$node = $children;
while ($children->children()) {
foreach ($children as $child) {
if($child->children()){
break;
}
$children = $node->getName();
//Give key a name
$keyOfValue = $xml->getName() . "_" . $children . "_" . $child->getName();
// pass value from child to children
$children = $child;
// no children, fill array: key => value
if ($child->children() == false) {
$parent[$keyOfValue] = (string)$child;
}
}
}
$dataObject[] = $parent;
}
는 "휴식;" "자식"은 마지막 자식이 아니라 객체이기 때문에 잘못된 값을 제공하지 못하게하는 것입니다.
XML 구조를 아는 것이 도움이됩니다. – Dormilich
@ Dormilich 사실 그것은 다른 문제입니다. 구조는 가변적입니다. http://api.parariusoffice.nl/export/208/xpat-rentals.xml을 예로 들었습니다. –