本文介绍了For Each循环中的xpath的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞!   $ 我正在迭代XML文档,在eacj迭代中,我需要获取节点的值。  我为debatching指定了xpath,  For-Each每次迭代都会给我以下文件 < wd:Order xmlns:wd =" mynamespace"> < wd:OrderId> abc335< / wd:OrderId> < / wd :订单>  我正在尝试提取orderId并将其分配给变量。   这是我的表达式:  b $ b    &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;  ""Set_variable":{   &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; "输入":{   &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; "name":"myVariable","  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; "value":" @ {xpath(xml(item()),'/ * [local-name()= \" Order \"和namespace-uri()= \" mynamespace \\ \\"] / * [local-name()= \" OrderId \" 和namespace-uri()= \" mynamesspace \"]')}"   &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; },b $ b  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; "runAfter":{},   &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; "type":" SetVariable"   &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; } 但是,我没有看到 abc335 :  [{" ; $内容类型":"应用/ XML;字符集= UTF-8英寸, 的" $内容":" PHdkOkVtcGxveW1lbnRfU3RhdHVzIHhtbG5zOndkPSJ1cm46Y29tLndvcmtkYXkucmVwb3J0L1N1bl9MaWZlX0dSU19EZW1vZ3JhcGhpY3NfV1MiPkE8L3dkOkVtcGxveW1lbnRfU3RhdHVzPg =="}] 我做错了什么?我真的被卡住了... 谢谢!Hi, I am iterating over XML document, and on eacj iteration I need to extact the value of the node. I specified xpath for debatching,  For-Each on each iteration gives me the following document<wd:Order xmlns:wd = "mynamespace"><wd:OrderId>abc335</wd:OrderId></wd:Order> I am trying to extract orderId and assign it to a variable.  Here is my expression:               "Set_variable": {                        "inputs": {                            "name": "myVariable",                            "value": "@{xpath(xml(item()), '/*[local-name()=\"Order\" and namespace-uri()=\"mynamespace\"]/*[local-name()=\"OrderId\" and namespace-uri()=\"mynamesspace\"]')}"                        },                        "runAfter": {},                        "type": "SetVariable"                    }But, instead of abc335 I am seeing this: [{"$content-type":"application/xml;charset=utf-8","$content":"PHdkOkVtcGxveW1lbnRfU3RhdHVzIHhtbG5zOndkPSJ1cm46Y29tLndvcmtkYXkucmVwb3J0L1N1bl9MaWZlX0dSU19EZW1vZ3JhcGhpY3NfV1MiPkE8L3dkOkVtcGxveW1lbnRfU3RhdHVzPg=="}]What am I doing wrong? I am really stuck...Thanks!推荐答案 首先,你需要告诉解析器,这里只返回1个元素(你无法从xpath中判断出来)(使用first()函数)。First of all, you need to tell the parser that there's only 1 element being returned here (which you cannot tell from an xpath) (using the first() function).那么你还需要文本而不是元素(text()函数)Then you also need the text and not the element (text() function)另外:在逻辑应用程序中为for-each循环内部分配全局变量时要非常小心,除非你设置了"并发控制" ;为了真实并设定"并行度"到1。Also: Please be very careful when assigning to a global variable inside a for-each loop in a Logic App, unless you have set "Concurrency Control" to true and set "Degree of Parallelism" to 1.这是"SetVariable"的完整值表达式。操作:Here is your full value expression for the "SetVariable" action:@{first(xpath(xml(item()),'/*[local-name()=\"Order\" and namespace-uri()=\"mynamespace\"]/*[local-name()=\"OrderId\" and namespace-uri()=\"mynamespace\"]/text()'))} Morten la CourMorten la Cour 这篇关于For Each循环中的xpath的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
07-23 03:30
查看更多