2011-12-08 4 views
0

나는 XML 파일을 즉석에서 작성해야하는 경우가 거의 없습니다. 날이처럼 보이는 것 정상적인 xml 파일 생성하는 것은 아무 문제가 없었다 :PHP를 사용하여 즉석에서 XML 작성

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <item> 
    <name></name> 
    </item> 
</root> 

을하지만 내 요구 사항은 내가 누구의 출력되는 XML 파일을 생성 할 필요가 있도록이다

<?xml version="1.0" encoding="UTF-8"?> 
    <root> 
     <item> 
     <name url = "C:\htdocs\proj1\source_file1"/> 
     <name url = "C:\htdocs\proj1\source_file2"/> 
     <name url = "C:\htdocs\proj1\source_file3"/> 
     </item> 
    </root> 

나는이 방법으로 시도했다 :

<?php 
    $domtree = new DOMDocument('1.0', 'UTF-8'); 
    $domtree->formatOutput = true; 

    $xmlRoot = $domtree->createElement("root"); 
    $xmlRoot = $domtree->appendChild($xmlRoot); 

    $item = $domtree->createElement("item"); 
    $item = $xmlRoot->appendChild($item); 

    $name= $domtree->createElement("name"); 
    $name = $item->appendChild($name); 

    $sav_xml = $domtree->saveXML(); 
    $handle = fopen("new.xml", "w"); 
    fwrite($handle, $sav_xml); 
    fclose($handle);  
?> 

그러나 나는 url = "path"를 내 요소에 추가/추가하려고했다. URL과 경로를 사용하여 변수를 선언했지만 다음과 같은 오류가 발생합니다.

Uncaught exception 'DOMException' with message 'Invalid Character Error' 

이 문제를 해결하는 방법에 대한 아이디어가 있습니다. 당신은 단지 PHP는 DOM을 통해 속성을 선언해야

감사

+0

귀하의 코드 나던 쇼. 어쨌든 XML에서 속성을 설정하는 방법은 중복됩니다. 예제는 http://pastebin.com/U2rNuZQP를 참조하십시오. – Gordon

+0

[XML의 속성 값을 만들고 설정하는 방법]의 가능한 복제본 (http://stackoverflow.com/questions/6226702/how-to-create-and-set-values-for-attribute-in-xml) – Gordon

답변

3

: 당신이 속성을 설정하려고

... 
$name= $domtree->createElement("name"); 

$urlAttribute = $domtree->createAttribute('url'); 
$urlAttribute->value = 'C:\htdocs\proj1\source_file1'; 
$name->appendChild($urlAttribute); 

$item->appendChild($name); 
... 

Link to DOMDocument docs

+0

덕분에 팔미가 많았지 만 – 125369

관련 문제