2014-03-06 1 views
0

누구든지 "정상적인"XML 형식으로 문자열을 "폭발"시킬 수있는 방법을 알고 있습니까? 작업을 수행 할 수있는 것처럼 보이는이 스크립트 (참조 : gooseflight, 2010)가 있지만 출력이 함께 어긋납니다.PHP에서 simpleXML로 string back xml을로드하는 방법은 무엇입니까?

<?xml version="1.0" encoding="UTF-8"?> 
<CAB> 
<CABO>XXXXXXXXXX0987650003</CABO><ACTIVITY>NONE</ACTIVITY><BEORI>blablaE</BEORI>BEDEST>blabla</BEDEST><NATRELA>more blabla</NATRELA><ANE>2014</ANE><NODEP>1111</NODEP> 
</CAB> 

그래서 내가 어떻게 같이 할 노드를 분리해서 할 수

이 에게
<?xml version="1.0" encoding="UTF-8"?> 
<CAB> 
<CABO>XXXXXXXXXX0987650003</CABO> 
<ACTIVITY>NONE</ACTIVITY> 
<BEORI>blablaE</BEORI> 
<BEDEST>blabla</BEDEST> 
<NATRELA>more blabla</NATRELA> 
<ANE>2014</ANE> 
<NODEP>1111</NODEP> 
..... 
</CAB> 
이 에게

사람이 알겠습니까 ? : : 여기

enter code herefunction combineXML($file) 
{ 
    global $xmlstr; 

    $xml = simplexml_load_file($file); 

    foreach($xml as $element) 
     $xmlstr .= $element->asXML(); 
} 

$files[] = "tmp.xml"; 
$files[] = "traduction.xml"; 

$xmlstr = '<CAB>'; 

foreach ($files as $file) 
    combineXML($file); 

$xmlstr .= '</CAB>'; 

// Convert string to XML for further processing 

$xml = simplexml_load_string($xmlstr); 
$bytes = file_put_contents("combined.xml", $xml->asXML()) 

이 출력됩니다 : 여기

코드입니다 그것을 고치는 방법?

답변

0

XML을 저장하려면 DomDocument 클래스를 사용하는 것이 좋습니다. 다음을 확인하십시오.

$dom_obj = new DOMDocument(); 
$dom_obj->loadXML($file); 
// Do all your changes to the file by using DomDocument command (e.g. CreateElement, CreateAttribute, etc) 
$dom_obj->formatOutput = true; 
$dom_obj->save($file); 
+0

답장을 보내 주셔서 감사합니다. DOM을 살펴보기 전에 위의 코드를 사용하여이를 수행 할 수있는 방법이 없을까요? – baldfrogg

+0

이 작업이 가능한지 모르겠지만이'$ xml = simplexml_load_string ($ xmlstr) -> asXML(); – Javad

관련 문제