【问题标题】:PHP SoapClient Request - Array StructurePHP SoapClient 请求 - 数组结构
【发布时间】:2017-01-11 11:43:22
【问题描述】:

我已经成功地使用 PHP 和 SoapClient 使用数组将请求传递给第三方 API。通过转储来自 SoapClient 的请求,传递给 API 的 XML 数据是什么。

现在我遇到了 extendedData> 所需的 XML 结构,我无法将其作为数组传递;

<TypeID>int</TypeID>
<FooID>int</FooID>
<BarID>int</BarID>
<extendedData>
    <Service_CreateFields>
        <FieldName>my string 1</FieldName>
        <FieldValue>my string 2</FieldValue>
        <Comments>my string 3</Comments>
    </Service_CreateFields>
    <Service_CreateFields>
        <FieldName>my string 4</FieldName>
        <FieldValue>my string 5</FieldValue>
        <Comments>my string 6</Comments>
    </Service_CreateFields>
</extendedData>

我尝试了以下数组,但无法生成包含两个或更多 Service_CreateFields>

的 XML 请求
$data = array(
    "TypeID" => "11",
    "FooID" => "22",
    "BarID" => "33",
    "extendedData" => array(
        "Service_CreateFields" => array(
                "FieldName" => "my string 1",
                "FieldValue" => "my string 2",
                "Comments" => "my string 3",
            ),
            "Service_CreateFields" => array(
                "FieldName" => "my string 4",
                "FieldValue" => "my string 5",
                "Comments" => "my string 6",
            ),
    ),
);

有人有这方面的经验吗?

【问题讨论】:

  • extendedData 使用foreach 循环,它的xml 标签为Service_CreateFields,它会为你生成带有子元素的xml

标签: php arrays xml soap soap-client


【解决方案1】:

尝试将每个孩子包装在它自己的数组中:

$data = array(
    "TypeID" => "11",
    "FooID" => "22",
    "BarID" => "33",
    "extendedData" => array(
        "Service_CreateFields" => array(
            array(
                "FieldName" => "my string 1",
                "FieldValue" => "my string 2",
                "Comments" => "my string 3",
            ),
            array(
                "FieldName" => "my string 4",
                "FieldValue" => "my string 5",
                "Comments" => "my string 6",
            )
        )
    )
);

【讨论】:

  • 是的,这个数组结构工作得很好!非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
相关资源
最近更新 更多