Graydon - That makes sense. Maybe parsing the output of index:facets() would work? If I'm understanding correctly, it will only work from the database level.
Bridger On Fri, Nov 9, 2018 at 1:37 PM Christian Grün <christian.gr...@gmail.com> wrote: > Hi Graydon, > > Bridger has already given you a perfect reference. > > The XQuery Working Group decided it’s a cleaner solution to do node > tests with typeswitch. If you want to do different things based on the > node type, it should be a good alternative to the string-based > approach: > > declare function local:node-type( > $node as node() > ) as xs:string { > typeswitch($node) > case element() return 'element' > case comment() return 'comment' > case attribute() return 'attribute' > case text() return 'text' > case document-node() return 'document-node' > case processing-instruction() return 'processing-instruction' > default return error() > }; > for $node in (<a/>, <!-- x -->) > return local:node-type($node) > > Cheers, > Christian > > > > > On Fri, Nov 9, 2018 at 7:17 PM Graydon Saunders <graydon...@gmail.com> > wrote: > > > > Hi Bridger -- > > > > Those are helpful, thanks! > > > > I was hoping for a built-in (extenstion!) function on the (possibly > mistaken) supposition that BaseX just knows that things are in the internal > representation and would nigh-certainly be quicker to have something that > returns that value directly. > > > > -- Graydon > > > > On Fri, Nov 9, 2018 at 1:10 PM Bridger Dyson-Smith < > bdysonsm...@gmail.com> wrote: > >> > >> HI Graydon - > >> > >> it isn't a builtin function, but maybe the functx:node-kind() and > functx:sequence-type() functions are what you want[1,2]? > >> Hope that helps. > >> > >> Best, > >> Bridger > >> [1] http://www.xqueryfunctions.com/xq/functx_node-kind.html > >> [2] http://www.xqueryfunctions.com/xq/functx_sequence-type.html > >> > >> On Fri, Nov 9, 2018 at 12:40 PM Graydon Saunders <graydon...@gmail.com> > wrote: > >>> > >>> Hi! > >>> > >>> I am overcome with the cabbage-nature today, because I can't find this > in the docs. > >>> > >>> I am convinced there's a way to go: > >>> > >>> (//some-element/node()) ! fn:node-type(.) > >>> > >>> and get a sequence of "element(),element(),text()..." but do not know > what the actual function is called. (it's not node-type()!) > >>> > >>> How ought I to be approaching this? > >>> > >>> Thanks! > >>> Graydon > >>> > >>> >