我有一个应用程序,它使用XPath从
XML文件中提取数据.如果缺少该
XML源文件中的节点,我想返回值“N / A”(非常类似于Oracle NVL函数).诀窍是应用程序不支持XSLT;我想单独使用XPath和XPath来做这件事.
那可能吗?
它可以完成但仅当节点存在时的返回值是节点的字符串值,而不是节点本身. XPath
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)))
其中$null-value是空值字符串,$node是用于选择节点的表达式.请注意,如果$node计算到包含多个节点的节点集,则使用第一个节点的字符串值.