|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] Query Through Multiple FilesMichael Kay mike at saxonica.comTue Jan 22 15:07:25 PST 2008
I wasn't trying to give you a complete solution to your problem because I don't know what the problem is. I was only trying to explain why you got the error message that you got. If you want help writing your query, please explain what the source documents look like and what output you need. Michael Kay http://www.saxonica.com/ _____ From: Wei, Alice J. [mailto:http://x-query.com/mailman/listinfo/talk] Sent: 22 January 2008 14:46 To: Michael Kay; 'Liam Quin' Cc: http://x-query.com/mailman/listinfo/talk Subject: RE: Query Through Multiple Files Hi, Michael: Sorry, but that is not entirely what I want. I was hoping to not just keep the information but also the markup. Is there some way I can do that? This means that I should not be using distinct-values() because it is similar to <xsl:value-of select=""> as in XSLT, right? Here is the code again: declare boundary-space preserve; <book> { let $sorted_result:= for $doc in distinct-values((doc("1.xml"),doc("3.xml"), doc("4.xml"), doc("2.xml"))//ad/p/address) order by $doc ascending return $doc for $sorted_results at $count in $sorted_result return <bibl> <statistics>Showing Result: {$count} / {count($sorted_result)} </statistics> {$sorted_result} </bibl> } </book> Thanks for your help. ====================================================== Alice Wei MIS 2008 School of Library and Information Science Indiana University Bloomington http://x-query.com/mailman/listinfo/talk -----Original Message----- From: Michael Kay [mailto:http://x-query.com/mailman/listinfo/talk] Sent: Monday, January 21, 2008 4:04 PM To: Wei, Alice J.; 'Liam Quin' Cc: http://x-query.com/mailman/listinfo/talk Subject: RE: Query Through Multiple Files > I tried using > distinct-values(doc("1.xml"), doc("3.xml"), doc("4.xml"), > doc("2.xml"))//title, but I got the error that there should > be only 2 arguments. You didn't read my example carefully enough distinct-values(( doc("1.xml"), doc("2.xml"), doc("3.xml"), doc("4.xml"))//ad) Firstly, you want to find the set of titles and then take the distinct values in this set: so the "//title" part needs to inside the argument to distinct-values(). The way you've written it, you're taking four documents, then eliminating duplicates, then taking the title elements within those that are left. Secondly, if you supply a sequence to a function that expects a single argument then you need to double the parentheses, for example sum((1,2,3,4,5)) or distinct-values((1,2,2,4,4)). That's to make it clear you are passing one argument which is a sequence of five integers, not five arguments that are single integers. IN your case you've called distinct-values() with four arguments, rather than with a single argument that is a sequence. Michael Kay http://www.saxonica.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://x-query.com/pipermail/talk/attachments/20080122/7d0ad1b8/attachment-0001.htm
|
Purchase Stylus Studio Online Today!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






