【问题标题】:Get PHP Var_Dump Output in XML [duplicate]以 XML 格式获取 PHP Var_Dump 输出 [重复]
【发布时间】:2019-02-23 22:42:12
【问题描述】:

我正在使用 SoapClient 从 Web 服务提供者返回数据。数据以典型的对象/数组 PHP 格式返回。我想以 XML 格式返回它。

这是我调用 Web 服务的代码(我省略了用户名和密码):

<?php
//Calling Chrome ADS with Build Data
 $client = new     SoapClient('http://services.chromedata.com/Description/7b?wsdl');
 $account = ['number'=>"", 'secret'=>"", 'country'=>"US",    'language'=>"en"];
 $switch =  ["ShowAvailableEquipment", "ShowExtendedTechnicalSpecifications", "ShowExtendedDescriptions"];
 $vin = $_POST["b12"];

 $result = $client->describeVehicle([
 'accountInfo' => $account,
 'switch' => $switch,
  'vin' => $vin
]);

var_dump ($result);

 ?>

这是当前数据的输出方式:

object(stdClass)#2 (18) {
  ["responseStatus"]=>
  object(stdClass)#3 (2) {
    ["responseCode"]=>
    string(10) "Successful"
    ["description"]=>
    string(10) "Successful"
  }
  ["vinDescription"]=>
   object(stdClass)#4 (11) {
    ["WorldManufacturerIdentifier"]=>
    string(17) "Germany Audi Nsu "
    ["restraintTypes"]=>
    array(5) {
      [0]=>
  object(stdClass)#5 (3) {
    ["group"]=>
    object(stdClass)#6 (2) {
      ["_"]=>
      string(6) "Safety"
      ["id"]=>
      int(9)
    }
    ["header"]=>
    object(stdClass)#7 (2) {
      ["_"]=>
      string(17) "Air Bag - Frontal"
      ["id"]=>
      int(38)
    }
    ["category"]=>
    object(stdClass)#8 (2) {
      ["_"]=>
      string(14) "Driver Air Bag"
      ["id"]=>
      int(1001)
    }
  }

这是我希望输出数据的方式(这是从我通过 SoapUI 运行请求时开始的):

  <VehicleDescription country="US" language="en" modelYear="2008" bestMakeName="Audi" bestModelName="S4" bestStyleName="5dr Avant Wgn" xmlns="urn:description7b.services.chrome.com">
     <responseStatus responseCode="Successful" description="Successful"/>
     <vinDescription vin="WAUUL78E38A092113" modelYear="2008" division="Audi" modelName="S4" styleName="5dr Avant Wgn" bodyType="Wagon 4 Dr." drivingWheels="AWD" builddata="no">
        <WorldManufacturerIdentifier>Germany Audi Nsu</WorldManufacturerIdentifier>
        <restraintTypes>
           <group id="9">Safety</group>
           <header id="38">Air Bag - Frontal</header>
           <category id="1001">Driver Air Bag</category>
        </restraintTypes>
        <restraintTypes>
           <group id="9">Safety</group>
           <header id="38">Air Bag - Frontal</header>
           <category id="1002">Passenger Air Bag</category>
        </restraintTypes>
        <restraintTypes>
           <group id="9">Safety</group>
           <header id="39">Air Bag - Side</header>
           <category id="1005">Front Side Air Bag</category>
        </restraintTypes>
        <restraintTypes>
           <group id="9">Safety</group>
           <header id="39">Air Bag - Side</header>
           <category id="1007">Front Head Air Bag</category>
        </restraintTypes>

【问题讨论】:

    标签: php xml soap-client var-dump


    【解决方案1】:

    您可以使用__getLastResponse

    返回在最后一个 SOAP 响应中收到的 XML。

    <?php
    $client = SoapClient("http://services.chromedata.com/Description/7b?wsdl", array('trace' => 1));
    $account = ['number'=>"", 'secret'=>"", 'country'=>"US",    'language'=>"en"];
    $switch =  ["ShowAvailableEquipment", "ShowExtendedTechnicalSpecifications", "ShowExtendedDescriptions"];
    $vin = $_POST["b12"];
    
    $result = $client->describeVehicle([
        'accountInfo' => $account,
        'switch' => $switch,
        'vin' => $vin
    ]);
    
    //htmlentitites just to see the result in the browser window
    echo "Response :<br/>", htmlentities($client->__getLastResponse()), "<br/>";
    ?>
    

    【讨论】:

    • 当我包含它时,只接收输出Response:。试过echo "Response :&lt;br/&gt;", htmlentities($soapClient-&gt;__getLastResponse()), "&lt;br/&gt;";echo "Response :&lt;br/&gt;", htmlentities($client-&gt;__getLastResponse()), "&lt;br/&gt;";
    • 你设置'trace' =&gt; true了吗?
    • 就是这样,非常感谢!
    • 没问题。如果对您有用,您可以将答案标记为已接受。
    • 如果我希望 $result 变量位于 xml 中,而 var_dump $result; 将输出 xml 我将如何操作 $result 变量来实现这一点?像 $result -&gt; htmlentities($client-&gt;__getLastResponse()); 之类的东西?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多