【问题标题】:SimpleXML Output as a String [duplicate]SimpleXML 输出为字符串 [重复]
【发布时间】:2015-05-06 13:27:30
【问题描述】:

我有一个 API 的 XML 文件。 API 每次都会响应“错误消息:预期的参数类型为“字符串”、“数组”给定”。

$SimpleXML_loaded_File = simplexml_load_file("http://graphics.edc-internet.nl/b2b_feed.php?key=tc62te28wt3e2t73ctr9c1cw42601337&sort=xml&type=xml&lang=de");

foreach ($SimpleXML_loaded_File->product as $product) {

  /*$client->post('articles', array(
      'name' => $product->titel,
      'taxId' => 1,
      'supplier' => $product->merk,
      'mainDetail' => array(
          'number' => $product->artikelnummer
      )
  ));*/

echo "<pre>";
var_dump($product->artikelnummer);
echo "</pre>";

}

如果我 var_dump 输出我没有得到字符串我得到对象

object(SimpleXMLElement)#6 (1) {
  [0]=>
  string(7) "0633178"
}

如何只获取字符串?

【问题讨论】:

  • var_dump() 没有专门要求字符串值,因此您可能只是选择了错误的函数。您可能一直在寻找 strval()。或者 PHP 中的许多其他字符串函数。

标签: php xml


【解决方案1】:

此问题与类型转换有关。请检查。

echo (string)$product->artikelnummer;

【讨论】:

    【解决方案2】:

    SimpleXML 之所以简单是有原因的。回显元素时,它会自动将对象转换为字符串。您也可以将其显式转换为一个:

    echo (string)$product->artikelnummer;
    

    【讨论】:

    • 但是为什么我会收到错误消息:Errormesage: Expected argument of type "string", "array" given。正如我所说,我通过 $product->artikelnummer 获得价值;但是 API 说它是一个数组。
    • @user3633186 您必须将number 参数转换为字符串:'number' =&gt; (string)$product-&gt;artikelnummer
    猜你喜欢
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 2013-09-22
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多