xslt-1.0 - 读取 JSON 键值并将其存储在 XSLT 变量中
问题描述
请帮助我获取可在 DataPower 中用于以下输入的 XSLT 代码
Input: {
"Timestamp": "2018-12-19T10:52:21.0870605-05:00",
"ResponseType": "Success",
"Name": [
{
"Code": "1001",
"Description": "ABC",
"Number": "123"
},
{
"Code": "1002",
"Description": "XYZ",
"Number": "123"
},
{
"Code": "1003",
"Description": "PQA",
"Number": "123"
},
{
"Code": "1004",
"Description": "MNO",
"Number": "123"
}
]
}
输出:
XSLT 变量
xsl:variable_code = 1001,1002,1003,1004
xsl:variable_Name : ABC,XYZ,PQA,MNO
解决方案
XSLT 本身不能使用这种格式(XSLT 输入始终是 XML,但输出可以是任何格式)。
有办法解决这个问题。
1 - 改用 Gatewayscript 转换。您可以在自己的 Datapower “示例”文件夹中找到示例。文件以“.js”结尾
2 - 您仍然可以在 XSLT 中执行此操作,但需要使用输入设置和特殊的隐藏魔法变量将 JSON 自动转换为 XML。如何:
- 在您的对象(XML 防火墙或多协议 Gwy)中,将输入指定为“JSON”
- 在要使用 XSLT 解释此输入的规则步骤中,不要使用可变的“PIPE”或“INPUT”作为输入,而是使用“__JSONASJSONX”。更多信息在这里。
- 这将允许您在转换为 XML 后导航 JSON 文件。
这是转换的示例。
其余的只是 Datapower 上的普通 XSLT 编程...您可以创建 JSON 或 XML 输出...您的选择!
推荐阅读
- javascript - 为什么代码“水平循环滚动”在真正的浏览器上不起作用?
- javascript - Firestore“设置”和文档的最大写入速率
- javascript - 如何根据值更改标签中文本的颜色
- c - 计算 h264 rtp 流的 pps 时出错
- mongodb - 在 { $match: { $text: { $search: search } } 之后 Mongo 不使用索引吗?
- php - 致命错误:未捕获错误:使用 phpGACL 时调用未定义函数 mysql_pconnect()
- python - 替换所有语言中除字母数字以外的所有字符
- angular - 通过 json 数据使用 Angular 组件
- powershell - Invoke-Sqlcmd 在 powershell 中给出“ParserException”
- java - 从另一个方法获取变量的值