我需要使用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/