1

我正在用 php 开发一个应用程序,它从路透社 API 中提取数据我试图在进行 SOAP 调用之前添加请求参数,我有必须从我的请求生成的 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>

如果你注意到 Value 是空的,尽管我用 "MSFT.O" 设置了它,请问有什么帮助吗?

4

1 回答 1

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;
于 2013-03-02T15:14:21.583 回答