如何使用 XPath 检查 XML 中是否存在元素?

新手上路,请多包涵

下面是我的元素层次结构。如何检查(使用 XPath) AttachedXml 元素是否存在于 主要 消费者CreditReport

<Consumers xmlns="http://xml.mycompany.com/XMLSchema">
       <Consumer subjectIdentifier="Primary">
          <DataSources>
               <Credit>
                   <CreditReport>
                      <AttachedXml><![CDATA[ blah blah]]>

原文由 Aravind Yarram 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 444
2 个回答

使用 boolean() XPath 函数

布尔函数将其参数转换为布尔值,如下所示:

  • 一个数字为真当且仅当它既不是正零也不是负零也不是 NaN

  • 一个节点集为真当且仅当它是非空的

  • 一个字符串为真当且仅当它的长度不为零

  • 四种基本类型以外的类型的对象以依赖于该类型的方式转换为布尔值

如果 ConsumerCreditReport 中有 AttachedXml ,则返回 true()

 boolean(/mc:Consumers
          /mc:Consumer[@subjectIdentifier='Primary']
            //mc:CreditReport/mc:AttachedXml)

原文由 Mads Hansen 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用

 boolean(/*/*[@subjectIdentifier="Primary"]/*/*/*/*
                           [name()='AttachedXml'
                          and
                            namespace-uri()='http://xml.mycompany.com/XMLSchema'
                           ]
       )

原文由 Dimitre Novatchev 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题