我需要获取 <TITLE>
使用 XQuery 来自以下 XML 的元素(我使用的是 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/