2016-10-17 4 views
1

PHP 배열에서 XML을 만드는 방법에 대해 여러 가지 기사를 통해 나 자신을 크롤링하고 있습니다.SimpleXML이 닫는 태그에 id를 넣습니다.

SimpleXML과 루프를 사용하여 여기에서 두 개의 기사로 작동합니다.

나는이 사용 :

function array_to_xml($data, $xml_data) { 
foreach($data as $key => $value) { 
    if(is_numeric($key)){ 
     $key = 'point id="'.$key.'"'; //dealing with <0/>..<n/> issues 
    } 
    if(is_array($value)) { 
     $subnode = $xml_data->addChild($key); 
     array_to_xml($value, $subnode); 
    } else { 
     $xml_data->addChild("$key",htmlspecialchars("$value")); 
    } 
} 

}

을하고 지금은 작업의 종류를 않습니다.

요점은, 기사 목록을 보내기 위해 다차원 배열을 사용하고 있습니다. 당신은 짐작할 수 있습니다, 그

<article id="sth">bla</article> 

것은 것입니다. 문제는이 기능을 닫는 태그의 ID를 포함,, 그래서 물건은 다음과 같이 : 열고이 (또한 SimpleXML을 사용) 불가능 읽기를하게

<article id="a-1-0">Example of Naming</article id="a-1-0"> 

.

닫기 태그에 ID를 만들지 않게 SimpleXML을 구성하는 방법이 있습니까? Thx 사전에 어떤 도움이 큰 가치입니다.

편집 :

강령 - 코드 조각 위의 점 태그에 대해 다루고 있습니다. 이 같은 문제는, 그들은 당신은이 작업을 수행 할 수 있습니다

<point id="0">[...]</point id="0"> 
+0

대신'addAttribute ("$ key", htmlspecialchars ("$ value"))'를 사용하지 않아야합니까? – Rimble

답변

0

같이 :

$el = $xml_data->addChild('point', htmlspecialchars("$value")); 
$el->addAttribute('id', $key); 

가 아이를 추가 한 후 속성을 추가합니다.

희망 나는 도움이되었다.

+0

일부입니다. 문제는 그 중 두 가지 경우입니다. 나는 그 자리에 severat 포인트와 sereval 기사를 가지고 있는데, 그것은 처음에는 나오지 않았습니다. 사과합니다. – plachty

+0

plachty

+0

죄송합니다 입니다. 나는 이해하지 못했다. 이것은 당신의 문제를 해결하지 못했습니까? –