xml字符串到数组,或获取他的属性


Xml string to array, or to get his attributes

>我有以下字符串:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/UKash/Service1"><UKashTransaction><txCode>99</txCode><txDescription>Failed</txDescription><settleAmount> <settleAmount><transactionId>1341481253EDFC871620</transactionId><changeIssueVoucherNumber> <changeIssueVoucherNumber><changeIssueVoucherCurr> <changeIssueVoucherCurr><changeIssueAmount> <changeIssueAmount><changeIssueExpiryDate> <changeIssueExpiryDate><ukashTransactionId> <ukashTransactionId><currencyConversion> <currencyConversion><errCode>219</errCode><errDescription>Invalid Voucher Number</errDescription> <UKashTransaction></string></xml>

我想获取该字符串的一些属性,例如 txDescrition 等,我尝试了不同的变体,但无法得到结果。我正在使用php,如果有人可以提供帮助,我将不胜感激,因为我被阻止了。

更新:

问题是我没有将字符串格式化为有效,所以我使用 curl,这就是我从网关得到的:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/UKash/Service1">&lt;UKashTransaction&gt;&lt;txCode&gt;99&lt;/txCode&gt;&lt;txDescription&gt;Failed&lt;/txDescription&gt;&lt;settleAmount&gt;&lt;/settleAmount&gt;&lt;transactionId&gt;13414821393ED286BF2A&lt;/transactionId&gt;&lt;changeIssueVoucherNumber&gt;&lt;/changeIssueVoucherNumber&gt;&lt;changeIssueVoucherCurr&gt;&lt;/changeIssueVoucherCurr&gt;&lt;changeIssueAmount&gt;&lt;/changeIssueAmount&gt;&lt;changeIssueExpiryDate&gt;&lt;/changeIssueExpiryDate&gt;&lt;ukashTransactionId&gt;&lt;/ukashTransactionId&gt;&lt;currencyConversion&gt;&lt;/currencyConversion&gt;&lt;errCode&gt;219&lt;/errCode&gt;&lt;errDescription&gt;Invalid Voucher Number&lt;/errDescription&gt;&lt;/UKashTransaction&gt;</string>

咔嚓。

您的 XML 格式不正确 - 它以没有起始<xml>元素的</xml>结尾。假设您正在纠正这一点,下面的代码将解决您的问题。

$xml = simplexml_load_string($string);
print_r($xml->txDescrition);

如果你有Simple XML(PHP默认应该启用它),试试这个:

$xmlObject = simplexml_load_string($string);
echo $xmlObject->txDescription;

http://www.php.net/manual/en/function.simplexml-load-string.php