2011-04-08 5 views
9

Belirli bir dizinin altındaki tüm XML dosyalarını sorgulamak için XQuery kullanabilir miyim? Tüm XML dosyaları aynı yapıya sahiptir.XQuery belirli bir dizinin altındaki dosyaları?

Ayrıca, gördüklerimden XQuery birçok dosyaya sahip olabilirsiniz ancak sorgularına bunları yazmanız gerekir. Benim durumumda, her biri oldukça farklı isimlerle ile 500 XML dosyası sorgulamam gerekiyor.

for $x in doc("ALL files under a specific directory")/Foo 
return $x/Something 
+0

İyi soru, +1. Tam ve muhtemelen en kısa ve en standart çözüm için cevabımı görün. –

+0

Alt klasörlere geçmek istedim. DataDirect web sitesinde toplama işlevi için bu seçeneği buldum: '? Select = *. Xml; recurse = yes' –

cevap

6

collection() fonksiyonunu kullanın: Yani diyebilirim bir yolu var mı. onun Saxon implementation yılında

, birini kullanabilirsiniz: MarkLogic için

collection('file:///a/b/c/d?select=*.xml') 
+0

Zorba koleksiyon belgeleri [burada] (http: //cf.zorba-xquery.com.s3.amazonaws. com/doc/zorba-0.9.4/zorba/html/collections.html) – Pete

1

:

for $x in cts:search(fn:doc()/Foo, cts:directory-query("/target/directory/")) 
return $x/Something 
0

Kullanım toplama() fonksiyonu. onun Sakson uygulamasında

, birini kullanabilirsiniz: koleksiyonunu ('dosya: /// a/b/c/d = * seçmek xml.') Ben Windows 7 altında bu örneği çalıştı

Saxon HE 9.5.1.5J ile birlikte. Sonra URI farklı bir form alır, örneğin: dosya:/C:/work/GIT/managedSoftwareDoc/deneme/xQuery? Select = *. Xml