我正在尝试对具有两个不同 namespace 的 XML (XHTML5) 进行查询,一个用于标记,另一个用于属性。
这是一个例子:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:epub="http://www.idpf.org/2007/ops">
<head>
<link href="primo.css" rel="stylesheet" type="text/css" />
<title>Incipit</title>
</head>
<body>
<p id="notauno" epub:type="footnote">Il nome della rosa è una cosa.</p>
</body>
</html>
所以,我有一个来自 epub 命名空间的“类型”属性。我无法理解正确的 XQuery 语法来读取例如 p 标记(“脚注”)中 epub:type 的值。我尝试了不同的代码,如下所示:
xquery version "1.0";
declare namespace epub="http://www.idpf.org/2007/opf";
declare namespace h="http://www.w3.org/1999/xhtml";
let $sorgente:=fn:doc("file.xhtml")
for $nota in $sorgente//h:p
return data ($nota/@epub:type)
但是有一个我看不到的错误。如果有人可以帮助我,请提前致谢。
最佳答案
对我来说似乎是一个错字。 XML 有 epub
前缀映射到以下 URI :
xmlns:epub="http://www.idpf.org/2007/ops"
而在 XQuery 中,相同的前缀映射到:
epub="http://www.idpf.org/2007/opf";
注意
ops
之间的区别和 opf
关于xml - XQuery 属性中具有不同 namespace 的 XML 文件 (epub :type),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36398712/