2016-04-04 21 views
0

Bir XML (XHTML5) üzerinde, biri etiketler ve öznitelikler için olmak üzere iki farklı ad ile bir sorgu oluşturmaya çalışıyorum.XQuery özniteliklerde farklı ad alanına sahip bir XML dosyası (epub: type)

<?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> 

Yani, epub ad gelen "type" özelliği vardır:

Bu

bir örnektir. Doğru XQuery sözdizimini, örneğin, p etiketinde ("dipnot") epub: type değerini okumak için anlayamıyorum. Farklı kodları denedim:

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) 

Göremediğim bir hata var. Birisi bana yardım ederse, şimdiden teşekkürler.

+0

çalışacak "bir hata var"? Hangi çıktıyı elde edersiniz, sağladığınız girdinin beklenen çıktısı nedir? –

+0

Beklenen çıktım "dipnot". "Sorgunuz boş bir sıra verdi." –

+0

herhangi bir şansla MarkLogic kullanıyor musunuz? – Daniele

cevap

1

Bana yazım hatası gibi görünüyor. XML aşağıdaki URI epub önek eşlenen etti:

xmlns:epub="http://www.idpf.org/2007/ops" 

XQuery iken, aynı önek eşleştirildiği:

epub="http://www.idpf.org/2007/opf"; 

Bildirim ops ve opf

+1

Haklısınız. Facepalm. Yazım hatasıydı. Çok teşekkür ederim. –

1

Beyanınız arasındaki farkı epub ad alanı için bir yazım hatası var. olmalıdır: - _which_ hata

declare namespace epub="http://www.idpf.org/2007/ops"; 

Ve sonra ;-)

+0

Sen de haklısın. Çok teşekkür ederim. –