2012-10-04 46 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