2016-10-07 82 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