我在XSLT中调用了一个rest服务,并获得了JSON响应。
如何使用XSLT从该JSON响应中提取数据。下面是用于调用其余服务的XSLT代码,并且还提供了JSON响应。从JSON响应中,我需要提取Cookie1
,Cookie2
和Cookie3
的值。
XSLT
<xsl:variable name="result1">
<dp:url-open target="{$abc}" response="binaryNode"
resolve-mode="xml" data-type="xml" http-method="post">
</dp:url-open>
</xsl:variable>
<xsl:variable name="json">
<xsl:value-of select="dp:decode(dp:binary-encode($result1/result/binary/node()),
'base-64' )" />
</xsl:variable>
JSON响应:
{"mapData": {
"Cookie1": "KlzpP965iBw==",
"status": "True",
"Cookie2": "DDGT8mcsuzdMNNQ=",
"Cookie3": "VERSION_4~mPpYUDcZnoJ0Z"
}}
请使用XSLT告诉我如何执行此操作。
答案 0 :(得分:2)
使用fn:parse-json()
返回map
,然后map:get()
返回感兴趣的值。
答案 1 :(得分:0)
<xsl:variable name="ValidationResponse">
<dp:url-open target="{$url}"
response="responsecode-binary" http-method="GET"
content-type="application/x-www-form-urlencoded"
ssl-proxy="abc" http-headers="$headerValues" />
</xsl:variable>
<dp:set-variable name="'var://context/sample/valResp'"
value="normalize-space($ValidationResponse)"/>
然后使用convert query params或其他XSLT转换输出以获得所需的输出。