我有一个使用 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(使用前将#替换为@)