我需要使用XQuery从以下XML中获取<TITLE>元素(我正在使用eXist-db)。

<?xml-stylesheet href="shakes.xsl" type="text/xsl"?>
<!--!DOCTYPE PLAY PUBLIC "-//PLAY//EN" "play.dtd"-->
<ClinicalDocument xmlns="urn:hl7-org:v3">
    <PLAY>
        <TITLE>The Tragedy of Hamlet, Prince of Denmark</TITLE>
    </PLAY>
</ClinicalDocument >


当我尝试使用下面的XQuery时,没有得到预期的输出。

xquery version "3.0";

doc("/db/apps/demo/data/hamlet.xml")/ClinicalDocument/PLAY/TITLE


我认为问题与xmlns标记中的<ClinicalDocument>属性有关:

<ClinicalDocument xmlns="urn:hl7-org:v3">


如何修改XQuery以检索所需的XML元素?

最佳答案

声明映射到您的XML默认名称空间的前缀,并使用该前缀引用名称空间中的元素,如下所示:

declare namespace d = "urn:hl7-org:v3";
doc("/db/apps/demo/data/hamlet.xml")/d:ClinicalDocument/d:PLAY/d:TITLE


在这里测试:http://www.xpathtester.com/xquery/a88f300bbeacdbd846d7aec887d48a0b

关于xml - 使用eXist-db使用xpath和xquery解析xml文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35262822/

10-10 23:11
查看更多