在PHP中解析XML标记
我从WSDL得到的响应如下:在PHP中解析XML标记,php,xml,wsdl,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_
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>
RMT\u令牌\u确认
塔莫特
91001
e659a4f4-8fb1-4fe1-95dd-62da8d4c3fb4
01
当我计算原始响应字符时,我发现是221个。但是,我无法在我的响应中看到整个字符串。您可以看到我的结果字符串中没有XML标记。如何从这里获得代币
我知道,这很令人困惑。如果你需要任何信息,请告诉我。谢谢。我想出来了
$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
看起来像是消息id、usr\U名称、代理代码、令牌和响应代码的集合。。。i、 e.XML去掉了标记。您没有通过
strip\u tags()
传递响应,是吗?请尝试var\u dump($response),其中$response是您从wsdl获得的。浏览器会将该字符串视为html,并且不会显示标记。我发布了这个问题的答案。谢谢你的努力。