how does one output the first line?

Monday, 28 November 2011 · 2 messages
J
jidanni28 Nov 2011 14:51 #
Hello, We read "The PITarget of a processing instruction may not consist of the characters "XML" in any combination of upper and lower case. The DirPIContents of a processing instruction may not contain the string "?>"." So how can one output the line <?xml version="1.0" encoding="UTF-8"?> I need to put it at the top of my output. Also, is there a way to only write the fn:matches line once here?:
   let $d := doc("p.xml")
   let $region := ('基隆|新北|台北','桃園|新竹|苗栗','台中|彰化|南投','雲林|嘉義|台南',
    '高雄|屏東','宜蘭|花蓮|台東','澎湖|金門|連江')
   for $count in 1 to count($region) return
   <Folder>
    <name>{$region[$count]}({count($d/Folder/Placemark[fn:matches(./description,
      concat('/li&gt;&lt;li&gt;','(',$region[$count],')'))])})</name>
    <open>0</open>
    {$d/Folder/Placemark[fn:matches(./description,
      concat('/li&gt;&lt;li&gt;','(',$region[$count],')'))]}
   </Folder>
Also, in perl one can use decode_entities() to convert &lt; to < etc., however reading http://www.w3.org/TR/xpath-functions/ one notes xquery has no such function. What if I want to reduce my output by using CDATA instead? Or maybe xquery output must be valid XML no ifs ands or buts.
CG
Christian Grün28 Nov 2011 19:08 #
Hi Jidanni, you can specify an output declaration on top of your query [1]:
  declare option output:omit-xml-declaration "no";
Hope this helps, Christian [1] http://docs.basex.org/wiki/Serialization
Quoted text · jidanni · 36 lines
On Mon, Nov 28, 2011 at 2:51 PM, <jidanni at jidanni.org> wrote: > Hello, > > We read "The PITarget of a processing instruction may not consist of the characters "XML" in any > combination of upper and lower case. The DirPIContents of a processing instruction may not > contain the string "?>"." > > So how can one output the line > <?xml version="1.0" encoding="UTF-8"?> > > I need to put it at the top of my output. > > Also, is there a way to only write the fn:matches line once here?: > > let $d := doc("p.xml") > let $region := ('基隆|新北|台北','桃園|新竹|苗栗','台中|彰化|南投','雲林|嘉義|台南', > '高雄|屏東','宜蘭|花蓮|台東','澎湖|金門|連江') > for $count in 1 to count($region) return > <Folder> > <name>{$region[$count]}({count($d/Folder/Placemark[fn:matches(./description, > concat('/li&gt;&lt;li&gt;','(',$region[$count],')'))])})</name> > <open>0</open> > {$d/Folder/Placemark[fn:matches(./description, > concat('/li&gt;&lt;li&gt;','(',$region[$count],')'))]} > </Folder> > > > Also, in perl one can use decode_entities() to convert &lt; to < etc., however > reading http://www.w3.org/TR/xpath-functions/ one notes xquery has no > such function. What if I want to reduce my output by using CDATA > instead? Or maybe xquery output must be valid XML no ifs ands or buts. > _______________________________________________ > BaseX-Talk mailing list > BaseX-Talk at mailman.uni-konstanz.de > https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk >

⚡Generated with XQuery