2012-10-04 44 views
1

我正在開發的PHP應用程序就會從路透社的API數據我試圖添加請求參數進行SOAP調用之前,我有必須從我的請求時,它必須生成XML是這樣的:構建PHP對象等於XML標籤

<HeadlineMLRequest> 
<Filter> 
<MetaDataConstraint class="companies" xmlns="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/filter"> 
<Value>MSFT.O</Value> 
</MetaDataConstraint> 
</Filter> 
</HeadlineMLRequest> 

當我建立了我的請求參數對象我想這

protected function getRequest() { 
$retval->HeadlineMLRequest->MaxCount = 10; 
$retval->HeadlineMLRequest->Filter->MetaDataConstraint->class = "companies"; 
$retval->HeadlineMLRequest->Filter->MetaDataConstraint->Value = "MSFT.O"; 
return $retval; 
} 

但是當我去年呼應XML請求我覺得像這樣

<ns1:headlinemlrequest> 
<ns1:maxcount> 
10 
</ns1:maxcount> 
<ns1:filter> 
<ns2:metadataconstraint class="companies"> 
    <ns2:value> 
    </ns2:value> 
</ns2:metadataconstraint> 
</ns1:filter> 

如果您發現值雖然我設置爲「MSFT.O」,請任何幫助嗎?

回答

0

使用php soap的複雜請求沒有很好的文檔記錄,大多數示例僅顯示基本技巧。

嘗試以下操作:

$metaData = '<MetaDataConstraint class="companies" xmlns="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/filter"> 
<Value>MSFT.O</Value> 
</MetaDataConstraint>'; 

$xmlvar = new SoapVar($metaData, XSD_ANYXML); 
$retval->HeadlineMLRequest->Filter->MetaDataConstraint = $xmlVar; 
+0

已經有人問過類似的問題[這裏](http://stackoverflow.com/questions/3467624/using-soap-to-generate-xml-attributes-in- PHP) – optioanl