我正在使用从XML检索值的逻辑应用程序。我最初使用的是这种XML结构:
<Parent>
<Child1>Hello</Child1>
<Child2>World</Child2>
</Parent>
而且我能够使用此XPath表达式(在For_Each操作内部)检索值:
"@{xpath(xml(items('For_each_node')), 'string(/*[local-name()=\"Parent\"]/*[local-name()=\"Child1\"])')}"
效果很好,在本例中为“ Hello”,但是现在我得到了以下XML:
<Parent>
<Child N="1">Hello</Child>
<Child N="2">World</Child>
</Parent>
现在放在上面的表达式什么也没检索到。我想我需要调整表达式以执行类似“在子属性等于1的情况下检索节点值”的操作,但是我无法使其工作,我已经看到了有关如何执行此操作的示例,但是以某种方式在Logic应用程序中使用了语法XPath与“标准” XPath的使用方式有所不同。
感谢您的帮助,谢谢!
答案 0 :(得分:1)
用于选择元素的XPath,该元素具有N
属性的值1
和local-name()
的{{1}}
Child
应用于您最初提供的代码:
/*[local-name() = "Parent"]/*[local-name() = "Child" and @N = "1"]
如果XML没有绑定到名称空间,则可以进一步简化。代替使用"@{xpath(xml(items('For_each_node')), 'string(/*[local-name()=\"Parent\"]/*[local-name()=\"Child\" and @N=\"1\"])')}"
在任何元素上进行一般匹配,然后使用谓词测试*
,而只需使用:
local-name()