我有以下路径:
我想选择ns1:customField10,如果它不为空,否则我想返回ns1:accountNumber.
我尝试了以下方法:
xml.SelectSingleNode(
"(/my:cobius/ns1:Audit/ns1:Visit/ns1:customField10 |
/my:cobius/ns1:Audit/ns1:Visit/ns1:accountNumber)", ns)
Run Code Online (Sandbox Code Playgroud)
但它始终返回accountNumber.我尝试翻转customField10和accountNumber的顺序,但没有快乐.它仍然返回accountNumber.
如何在XPath中执行等效的coalesce运算符?
更新:
这是最终的代码:
xml.SelectSingleNode(
"(/my:company/ns1:Audit/ns1:Visit/ns1:customField10[normalize-space()] |
/my:company/ns1:Audit/ns1:Visit/ns1:accountNumber[not(normalize-space(../ns1:customField10))])", ns)
Run Code Online (Sandbox Code Playgroud)
如果节点丢失,您的代码将起作用(类似于SQL中的NULL).但是不会丢失空(就像SQL中的空字符串).
你当然可以添加一个谓词:
/my:cobius/ns1:Audit/ns1:Visit/ns1:customField10[string-length(.)] | /my:cobius/ns1:Audit/ns1:Visit/ns1:accountNumber
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4168 次 |
| 最近记录: |