php
  • xml
  • 2015-11-02 142 views 1 likes 
    1

    我生成一些XML數據以響應HTTP POST請求。我正在設置MIMEPHP - 格式化XML輸出

    header('Content-type: text/xml'); 
    

    到目前爲止一切正常。

    我生成XML響應如下:

    $response = '<?xml version="1.0" encoding="utf-8"?>'; 
    $response .= '<error>'; 
    $response .= '<description>'.$error.'</description>'; 
    $response .= '</error>'; 
    echo $response; 
    

    我現在想格式的XML,這樣也看不到這樣的響應:

    <?xml version="1.0" encoding="utf-8"?><error><description>Login Error: No Username Supplied</description></error> 
    

    他們看到這樣的響應:

    <?xml version="1.0" encoding="utf-8"?> 
    <error> 
        <description>Login Error: No Username Supplied</description> 
    </error> 
    

    我還沒有與PHP的XML輸出工作,所以不知道是否有內置在輸出中執行「漂亮打印」類型函數的方法?

    +0

    你是如何輸出XML?看看這個線程,http://stackoverflow.com/questions/8615422/php-xml-how-to-output-nice-format。 – chris85

    +1

    稍有偏離:「正確地格式化XML」 - 兩種版本都不如其他版本更正確。你可能意思是「更易讀的」。然後文檔定義必須允許(即可以跳過空格)。 – VolkerK

    回答

    0

    使用DOM庫和formatOutput屬性設置爲true

    $doc = new DOMDocument('1.0', 'utf-8'); 
    $doc->formatOutput = true; 
    
    $root = $doc->createElement('error'); 
    $doc->appendChild($root); 
    
    $desc = $doc->createElement('description', $error); 
    $root->appendChild($desc); 
    
    echo $doc->saveXML(); 
    

    演示〜https://eval.in/461384

    相關問題