मैं xquery में समूह का उपयोग करना चाहता हूं। क्या कोई मुझे बता सकता है कि मार्कब्लिक में समूह का उपयोग कैसे करें?मार्कब्लिक में समूह का उपयोग कैसे करें?
उत्तर
संक्षिप्त उत्तर map:map
का उपयोग करना है। दस्तावेज़ीकरण के लिए http://docs.marklogic.com/map:map और लंबी चर्चा के लिए http://blakeley.com/blogofile/archives/560/ देखें।
वैकल्पिक रूप से, आप xdmp:xslt-invoke
या xdmp:xslt-eval
का उपयोग कर एक्सएसएलटी को कॉल कर सकते हैं। मार्कलोगिक का एक्सएसएलटी प्रोसेसर एक्सएसएलटी 2.0 का समर्थन करता है, जिसमें <xsl:for-each-group>
के लिए पूर्ण समर्थन शामिल है।
पर पाया जा सकता है उदाहरण के लिए @mg_kedzie का उत्तर देखें .. – grtjn
मार्कलॉगिक XQuery 3.0 के हिस्सों को कवर करता है (इसकी 1.0-मिली बोलीभाषा के साथ), लेकिन दुर्भाग्य से समर्थन के द्वारा FLWOR समूह की कमी है।
हालांकि, आप अभी भी प्रोग्रामेटिक रूप से वाक्यविन्यास की तरह समूह बना सकते हैं जो एक ही परिणाम प्राप्त करेगा। यहाँ एक XQuery उदाहरण है:
for $d in distinct-values(doc("order.xml")//item/@dept)
let $items := doc("order.xml")//item[@dept = $d]
order by $d
return <department code="{$d}">{
for $i in $items
order by $i/@num
return $i
}</department>
HTH
xquery version "1.0-ml";
let $xml:= <Students>
<Student Country="England" Name="Dan" Age="20" Class="C"/>
<Student Country="England" Name="Maria" Age="20" Class="B" />
<Student Country="Australia" Name="Mark" Age="22" Class="A" />
</Students>
let $xsl:= <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:template match="Students">
<result>
<xsl:for-each-group select="Student" group-by="@Country">
<country>
<xsl:attribute name="name"><xsl:value-of select="fn:current-grouping-key()"/></xsl:attribute>
<xsl:for-each select="fn:current-group()/@Name">
<name><xsl:value-of select="."/></name>
</xsl:for-each>
</country>
</xsl:for-each-group>
</result>
</xsl:template>
</xsl:stylesheet>
return xdmp:xslt-eval($xsl,$xml)
इस्तेमाल नहीं किया है MarkLogic। लेकिन कृपया http://blakeley.com/blogofile/archives/560/ –
पर एक नज़र डालें क्या मार्कलॉगिक का संस्करण आप XQuery 3.0 ड्राफ़्ट का समर्थन कर रहे हैं? (यह केवल 3.0 के रूप में है कि 'समूह द्वारा' समर्थन FLWOR अभिव्यक्तियों में जोड़ा गया था; उस बिंदु से पहले, आपको इसे स्वयं करना होगा)। XQuery 3.0 में 'समूह द्वारा' का सारांश http://docs.basex.org/wiki/XQuery_3.0#Group_By –