如何编写一个bot来遍历xmljson对象



我正在使用composer发布一个机器人程序,从azure存储表中获取数据。简而言之,bot编写器需要构造一个bot来迭代azure storage rest API返回的XML反序列化JSON对象。

在我由作曲家生成的代码中,机器人会执行一个";设置属性";在成功返回REST API(存储表查询(之后立即执行的步骤。给定由存储REST API返回的反序列化对象;设置属性";语句,这样机器人就可以打印我们的个人数据字段

另一种表达问题的方式是:我如何使用composer来构造bot,以遍历返回的反序列化对象(以XMLJSON格式编码(?

我在哪里能找到一份能说明这件事的文件?有什么地方我可以找到一个好的例子吗?可以通过composer完成吗?

提前谢谢。

是的,可以做到。如果API返回XML,请确保将API调用配置为请求内容类型application/xml

然后,您可以使用内置的xPath函数。请注意,如果结果超过与表达式匹配的值,它将返回一个数组,在该表达式中,您可以使用foreach函数对其进行迭代。我需要运行Composer的夜间构建(使用bot builder 4.12.0(才能让它为我工作。有关更多信息,请参阅此处:https://github.com/microsoft/botbuilder-js/pull/3093

这里有一个对我有用的例子:


"actions": [
{
"$kind": "Microsoft.SendActivity",
"$designer": {
"id": "rGv7XC"
},
"activity": "${SendActivity_rGv7XC()}"
},
{
"$kind": "Microsoft.HttpRequest",
"$designer": {
"id": "TDA1wO"
},
"method": "GET",
"url": "http://www.geoplugin.net/xml.gp?ip=157.54.54.128",
"resultProperty": "dialog.api_response",
"contentType": "application/xml"
},
{
"$kind": "Microsoft.SetProperty",
"$designer": {
"id": "ipNhfY"
},
"property": "dialog.timezone",
"value": "=xPath(dialog.api_response.content,'/geoPlugin/geoplugin_timezone/text()')"
},
{
"$kind": "Microsoft.SendActivity",
"$designer": {
"id": "DxohEx"
},
"activity": "${SendActivity_DxohEx()}"
}
]

您可以(如果需要/您愿意(使用内置的json和jPath函数将xml转换为json,然后使用进行查询。类似于:


${json(user.testXml)} and then
${jPath(user.testJson , "automobiles")}

最新更新