2016-10-07 81 views
0

我有以下的PHP服務器代碼:PHP SOAP服務器返回的XML用沒有標籤

$xml ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; 
$root = "Data"; 
$warmdata = "WarmData"; 
$brinedata = "BrineData"; 
$permindata = "PerMinData"; 
$xml .= "<$root>"; 
    $xml .= "<$warmdata>"; 
     foreach($result as $row) 
     { 
      $xml .= "<WarmIn>"; 
      $xml .= $row['value'] . " " . $row['time']; 
      $xml .= "</WarmIn>"; 
     } 

     foreach($result2 as $row) 
     { 
      $xml .= "<WarmOut>"; 
      $xml .= $row['value'] . " " . $row['time']; 
      $xml .= "</WarmOut>"; 
     } 
    $xml .= "</$warmdata>"; 

    $xml .= "<$brinedata>"; 
     foreach($result3 as $row) 
     { 
      $xml .= "<BrineIn>"; 
      $xml .= $row['value'] . " " . $row['time']; 
      $xml .= "</BrineIn>"; 
     } 

     foreach($result4 as $row) 
     { 
      $xml .= "<BrineOut>"; 
      $xml .= $row['value'] . " " . $row['time']; 
      $xml .= "</BrineOut>"; 
     } 
    $xml .= "</$brinedata>"; 

    $xml .= "<$permindata>"; 
     foreach($result5 as $row) 
     { 
      $xml .= "<WarmPerMin>"; 
      $xml .= $row['value'] . " " . $row['time']; 
      $xml .= "</WarmPerMin>"; 
     } 

     foreach($result6 as $row) 
     { 
      $xml .= "<BrinePerMin>"; 
      $xml .= $row['value'] . " " . $row['time']; 
      $xml .= "</BrinePerMin>"; 
     } 
    $xml .= "</$permindata>"; 
$xml .= "</$root>"; 

header ("Content-Type:text/xml"); 
return $xml; 

$options=array('uri'=>'http://localhost/'); 
$server = new SoapServer(NULL,$options); 
$server->setClass('DBData'); 
$server->handle(); 

我試圖讓使用SOAP客戶端正確格式化XML輸出,但是當我請求的XML,該出只包含從單個數據庫中檢索的數字,沒有實際的xml標記。 我該如何修改它,以便在輸出中使用標籤?

+0

這是功能?如果沒有返回將終止執行 – RiggsFolly

+0

@RiggsFolly是的,它是一個函數。它的工作原理,只有輸出缺少所有xml標籤,而是顯示在一行中。 – kisbovan93

+0

那麼請顯示所有相關的代碼。我們只能調試我們所看到的**,我們不是千里眼的** – RiggsFolly

回答

1

這些標籤是不允許的。你必須寫下它們:

< replace with &gt; 
> replace with &lt; 
+0

現在這只是一個評論。請不要在答案中發表評論,它很可能會得到降低利益,並且你不想要那 – RiggsFolly

+0

你是什麼意思?他問爲什麼這些標籤沒有顯示,我正在迴應他應該如何將它們放入他的代碼中。 –

+0

@WesleyDeKeirsmaeker我必須把這些放在哪裏? – kisbovan93