xml - XQuery 属性中具有不同 namespace 的 XML 文件 (epub :type)

标签 xml html namespaces xquery epub

我正在尝试对具有两个不同 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/

相关文章:

java - 我如何在java中动态解码xml?

javascript - header 中的 Google 标记管理器脚本不允许更改 href

python从字典条目创建变量

c# - 如何加载未净化的 XML?

javascript - 在 DomParser 中使用 hasAttribute

xml - 为什么这不是有效的 XML DTD? (参数实体和#PCDATA)

javascript - HTML5 &lt;script&gt; 声明

jquery - 如何将 MINIMUM 值应用于 Kendo 网格列输入框?

c++ - "Expected unqualified-id before ' 命名空间 '"错误

C++ header-only 库避免 "using namespace"污染