在PHP中解析XML标记

时间:2014-08-21 14:51:52

标签: php xml wsdl

我从WSDL得到这样的响应:

string(221) : "RMT_TOKEN_ACKTHAMORTEST91001e659a4f4-8fb1-4fe1-95dd-62da8d4c3fb401"

文档说明,响应应该是,

<TRX_MESSAGE>
<MESSAGE>
<MESSAGE_ID>RMT_TOKEN_ACK</MESSAGE_ID>
<USR_NAME>THAMORTEST</USR_NAME>
<AGENT_CODE>91001</AGENT_CODE>
<TOKEN>e659a4f4-8fb1-4fe1-95dd-62da8d4c3fb4</TOKEN>
<RESP_CODE>01</RESP_CODE>
</MESSAGE>
</TRX_MESSAGE>

当我计算原始回复字符时,我发现它是221。但是,我在回复中看不到整个字符串。您可以看到我的结果字符串中没有XML标记。如何从中获取令牌?

我知道,这很令人困惑。如果您需要任何信息,请告诉我。感谢。

1 个答案:

答案 0 :(得分:0)

我明白了。

$token_string = $result->getTokenReturn;

<强>输出:

$token_string = "RMT_TOKEN_ACKTHAMORTEST91001e659a4f4-8fb1-4fe1-95dd-62da8d4c3fb401"

<强> PHP

$dom = new DOMDocument;
$dom->loadXML($token_string);
$tokens = $dom->getElementsByTagName('TOKEN');
foreach ($tokens as $token) {
    echo $token->nodeValue, PHP_EOL;
}

必需的输出(仅限令牌)

e659a4f4-8fb1-4fe1-95dd-62da8d4c3fb4