xml - 逻辑应用使用 XPath 从具有属性的节点获取值
问题描述
我正在一个从 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\"])')}"
它工作得很好,在这个例子中我得到了“你好”,但是我现在得到了这个 XML:
<Parent>
<Child N="1">Hello</Child>
<Child N="2">World</Child>
</Parent>
现在放在上面的表达式什么也没得到。我认为我需要调整表达式以执行类似“检索子属性等于 1 的节点值”之类的操作,但我无法使其工作,我已经看到了有关如何做到这一点的示例,但不知何故逻辑应用程序中使用的语法for XPath 与“标准”XPath 的使用方式有些不同。
我会很感激你的帮助,谢谢!
解决方案
用于选择具有N
值为1
和 alocal-name()
的属性的元素的 XPathChild
/*[local-name() = "Parent"]/*[local-name() = "Child" and @N = "1"]
应用于您最初提供的代码:
"@{xpath(xml(items('For_each_node')), 'string(/*[local-name()=\"Parent\"]/*[local-name()=\"Child\" and @N=\"1\"])')}"
如果您的 XML 没有绑定到名称空间,那么您可以进一步简化事情。不要在任何元素上进行一般匹配*
,然后使用谓词来测试local-name()
,只需使用:
/parent/child[@N="1"]
推荐阅读
- javascript - 如何根据 SelectBox 的值禁用和启用 SelectBox 的选项?
- kubernetes - 为 kube-controller-manager 和 kube-scheduler 启用端点
- scala - 为什么我得到命令或没有目录找到裤子项目?
- r - R中没有循环的双重求和?
- r - 使用 ggplot 绘制多个图,每页 2 个
- python - 调用返回哈希值的函数:AttributeError: 'tuple' object has no attribute 'encode'
- node.js - Node.JS - 如何检测给定程序何时启动?
- audit.net - Audit.EntityFramework.Core 16.2.1 未跟踪外部对象更改
- html - 使用偏移流畅地定位内容
- javascript - 我可以引用从另一个选项卡打开的弹出窗口吗?