使用SimpleXMLElement将值从XML名称空间传递到PHP变量


Pass Values into PHP variables from XML name space using SimpleXMLElement

我有XML内容使用SimpleXMLElement和var_dump结果出现。

示例代码:

$data = new SimpleXMLElement($xml);
$data->registerXPathNamespace('ns','http://endpoint.websitecom/');
$part = $data->xpath("//ns:return");
var_dump($part[0]->children("ns",true));
我结果:

object(SimpleXMLElement)[4]
  public 'result' => 
    object(SimpleXMLElement)[6]
      public 'result' => 
      object(SimpleXMLElement)[10]
      public 'Code' => string '0' (length=1)
  public 'amount' => string '2020.03' (length=7)
  public 'code2' => string '3934.8' (length=6)
object(SimpleXMLElement)[8]

我如何通过金额,code2变量到PHP变量或数组?

$amount = ?????
$code2 = ????

我用流畅的xml代码编写了一个测试用例(在您的var_dump上进行反向工程):

<unknown xmlns:ns="http://endpoint.websitecom/">
 <ns:return>
  <ns:result>
   <ns:result>
    <ns:Code>0</ns:Code>
   </ns:result>
  </ns:result>
  <ns:amount>2020.03</ns:amount>
  <ns:code2>3934.8</ns:code2>
 </ns:return>
</unknown>

我在这里写了这段代码来获取$amount$code2:

$data = new SimpleXMLElement($xml);
$data->registerXPathNamespace('ns','http://endpoint.websitecom/');
$part = $data->xpath("//ns:return");
$branch=$part[0]->children("ns",true);
var_dump($branch); // your current output
$amount=$branch->amount;
$code2 =$branch->code2;