2011-04-14 99 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());