我可以为 XPath 中缺失的标签创建一个值吗?

2024-04-29

我有一个使用 XPath 从 XML 文件中提取数据的应用程序。如果该 XML 源文件中的节点丢失,我想返回值“N/A”(很像 Oracle NVL 函数)。问题在于该应用程序不支持 XSLT;我想使用 XPath 和单独使用 XPath 来完成此操作。

那可能吗?


可以这样做,但前提是节点确实存在时的返回值为节点的字符串值,而不是节点本身。 X路径

substring(concat("N/A", /foo/baz), 4 * number(boolean(/foo/baz)))

将返回的字符串值baz元素(如果存在),否则字符串“N/A”。

概括该方法:

substring(concat($null-value, $node),
          (string-length($null-value) + 1) * number(boolean($node)))

where $null-value是空值字符串并且$node选择节点的表达式。请注意,如果$node求值为包含多个节点的节点集,该节点的字符串值first使用节点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以为 XPath 中缺失的标签创建一个值吗? 的相关文章

随机推荐