2011-04-14 97 views
2
$doc = new DOMDocument(); 
    $doc->load('xml/lead.xml'); 
    $doc->formatOutput = true; 


    $tags = $doc->getElementsByTagName('RootElement'); 
    $r = $tags->item(0); 

    $a = $doc->createElement('Lead'); 
    $r->appendChild($a); 

    $b = $doc->createElement('Contact'); 
    $b->setAttribute('FirstName', ''.$name.''); 
    $b->setAttribute('LastName', ''.$last_name.''); 
    $b->setAttribute('Email', ''.$email.''); 
    $b->setAttribute('StreetAddress', ''.$address.''); 
    $b->setAttribute('City', ''.$city.''); 

    $a->appendChild($b); 

    $c = $doc->createElement('Qualifications'); 

    $a->appendChild($c); 

    $d = $doc->createElement('PropertyInterest'); 
    $d->setAttribute("BuilderName","Test"); 

    $a->appendChild($d); 

輸出到文件,看起來像當寫入到一個XML文件

<RootElement> 






<Lead><Contact FirstName="test " LastName="test" Email="[email protected]" StreetAddress="n/a" City="test"/><Qualifications/><PropertyInterest BuilderName="test"/></Lead></RootElement> 

還有噸空白...即時提交此爲CRM和我假設的空白確實讓格式化它在解析方式上的差異。

那麼,如何使用DOMDocument格式化XML?

+0

你是如何傾銷/打印生成的輸出? – 2011-04-14 22:10:49

+1

實際上,如果它是一個合適的XML解析器,它將忽略空白。你也可以嘗試從頭開始編寫XML文件,在我看來你正在加載的文件中有空白。 – Khez 2011-04-14 22:10:59

+0

$ doc-> save(「xml/lead.xml」) – Adam 2011-04-14 22:11:24

回答

0

如果這個lib是類似jdom的東西,你應該可以在輸出器上設置格式。沿着這些線:

out.setFormat(Format.getPrettyFormat());