【发布时间】:2016-09-24 11:40:06
【问题描述】:
我有一个 php 变量 ($output),其中包含一个具有以下属性的 xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="tns:ns">
<SOAP-ENV:Body><ns1:transactionStatusResponse>
<MSISDN>254705680609</MSISDN>
<AMOUNT>10</AMOUNT>
<MPESA_TRX_DATE>2016-05-21 10:57:43</MPESA_TRX_DATE>
<MPESA_TRX_ID>KEL7STGYEL</MPESA_TRX_ID>
<TRX_STATUS>Success</TRX_STATUS>
<RETURN_CODE>00</RETURN_CODE>
<DESCRIPTION>The service request is processed successfully.</DESCRIPTION>
<MERCHANT_TRANSACTION_ID/>
<ENC_PARAMS></ENC_PARAMS>
<TRX_ID>308e6137d9888ee8ead15c9577802947</TRX_ID>
</ns1:transactionStatusResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
现在我正在尝试将单个 xml 属性放入 php 变量中,但我似乎没有工作。这就是我试图用来提取各个属性的方法
$xml = @simplexml_load_string($output);
$MPESA_TRX_ID= (string)$xml->MPESA_TRX_ID;
$MSISDN = (string)$xml->MSISDN;
$AMOUNT = (string)$xml->AMOUNT;
有什么解决方法吗?
【问题讨论】:
-
XML 无效。描述的开始标签不正确。
<RETURN_CODE>00</RETURN_CODE>< DESCRIPTION>The service request is processed successfully.</DESCRIPTION>应该是<RETURN_CODE>00</RETURN_CODE><DESCRIPTION>The service request is processed successfully.</DESCRIPTION>。DESCRIPTION开始标记中有一个换行符。
标签: php xml xml-parsing xmlhttprequest