【发布时间】:2015-01-22 18:35:38
【问题描述】:
我正在寻找一种方法来比较来自两个不同 XML 的两个 XPath(1.0 版)值,即使其中一个值不存在。
其中一个生成的 XML 总是返回一个带有值或空标记的 XML 元素,即
<Product>
<Name>ProdName</Name>
<Id>3388</Id>
</Product>
或
<Product>
<Name/>
<Id>3388</Id>
</Product>
然而,另一个生成的 XML 文档,当一个元素没有值时,它根本不提供它,即(如果有 ProductName 的值,我可能会像下面这样收到它),
<ProductDetail>
<ProductName>ProdName</ProductName>
<ProductPrice>4820.99</ProductPrice>
...
</ProductDetail>
当ProductName没有值时接收,
<ProductDetail>
<ProductPrice>4820.99</ProductPrice>
...
</ProductDetail>
在节点存在的情况下,比较直接,
//interested_node/Product/Name/text()
和
//interested_node/ProductDetail/ProductName/text()
有没有办法拥有两个 XPath 表达式,一个从第一个 XML 文档中获取 node 的值并将其与第二个 XML 文档中的 node 值进行比较,即使在第二个 XML 文档中没有这样的节点的情况下表达?如果满足条件,是否有任何 XPath 1.0 函数返回一个值,否则返回另一个值(如 Oracle 的 decode())?
【问题讨论】: