Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中解析XML标记_Php_Xml_Wsdl - Fatal编程技术网

在PHP中解析XML标记

在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_

我从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>

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,并且不会显示标记。我发布了这个问题的答案。谢谢你的努力。