Hi Pragya , Let me know the output format of the below xml . then will give better solution
By Raja >>> From: [email protected] [mailto:[email protected]] On Behalf Of Kapoor, Pragya Sent: Friday, May 15, 2015 4:13 PM To: [email protected] Subject: Re: [MarkLogic Dev General] query on xml Hi Raja, The name structure is not mandatory. none of the element is mandatory. <results> <result> <a></a> <a></a> ------ <Name> <b></b> ------ <Law> <c></c> ------- <LEI> <result> </results> or <results> <result> <a></a> <a></a> ------ <City> <b></b> ------ <Law> <c></c> ------- <LEI> <result> </results> or <results> <result> <a></a> ------ <City> <a></a> ------ <City> <b></b> ------ <Law> <b></b> ------ <Law> <c></c> ------- <LEI> <c></c>-----<LEI> <result> </results> an so on... ________________________________ From: [email protected]<mailto:[email protected]> <[email protected]<mailto:[email protected]>> on behalf of [email protected]<mailto:[email protected]> <[email protected]<mailto:[email protected]>> Sent: Friday, May 15, 2015 3:58 PM To: [email protected]<mailto:[email protected]> Subject: Re: [MarkLogic Dev General] query on xml Hi Pragya, The ‘n’ number of elements in result means – like below structure <results> <result> <a></a> <a></a> ------ <Name> <b></b> ------ <Law> <c></c> ------- <LEI> <result> </result> Am not able to understand , because in below xml also you have only two combinations . IS <name> element is mandatory? Thanks and regards Raja >>> From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On Behalf Of Kapoor, Pragya Sent: Friday, May 15, 2015 9:35 AM To: MarkLogic Developer Discussion Subject: Re: [MarkLogic Dev General] query on xml Thanks Indy. But, The input <result> could have 'n' number of dynamic elements. ________________________________ From: [email protected]<mailto:[email protected]> <[email protected]<mailto:[email protected]>> on behalf of Indrajeet Verma <[email protected]<mailto:[email protected]>> Sent: Thursday, May 14, 2015 6:16 PM To: MarkLogic Developer Discussion Subject: Re: [MarkLogic Dev General] query on xml Pragya, See if below code works for you. If your input <result> can contain only two elements combination, Try below code changes in Raja's code, declare function local:transform($result as node()){ let $elements := fn:distinct-values($result/child::*/name(.)) for $token_one in $result/*[name(.) eq ($elements)[1]], $token_two in $result/*[name(.) eq ($elements)[2]] return <result>{($token_one,$token_two)}</result> }; Regards, Indy On Thu, May 14, 2015 at 4:42 PM, Kapoor, Pragya <[email protected]<mailto:[email protected]>> wrote: Yes Raja, I mean two or more elements other than name and law. So my input xml could be: <results> <result> <Name>thg</Name> <LEI>rty</LEI> </result> <result> <Name>gux</Name> <LEI>rty</LEI> </result> <result> <Name>abc</Name> <Name>xyz</Name> <Name>cde</Name> <LEI>fgd</LEI> </result> </results> ________________________________ From: [email protected]<mailto:[email protected]> <[email protected]<mailto:[email protected]>> on behalf of [email protected]<mailto:[email protected]> <[email protected]<mailto:[email protected]>> Sent: Thursday, May 14, 2015 3:05 PM To: [email protected]<mailto:[email protected]> Subject: Re: [MarkLogic Dev General] query on xml Hi Pragya, You meant, you will get some other element than “ name” and “Law” ? If that is not a case and will get these two elements with different count then will use the same code. Thanks and regards Raja >>> From: [email protected]<mailto:[email protected]> [mailto:[email protected]<mailto:[email protected]>] On Behalf Of Kapoor, Pragya Sent: Thursday, May 14, 2015 2:56 PM To: [email protected]<mailto:[email protected]> Subject: Re: [MarkLogic Dev General] query on xml Thanks for the solution, but as mentioned in my previous mail, the elements in input xml are dynamic, so I cant use for $name in $result/Name, $law in $result/Law return <result>{($name,$law)}</result> Thanks Pragya ________________________________ From: [email protected]<mailto:[email protected]> <[email protected]<mailto:[email protected]>> on behalf of [email protected]<mailto:[email protected]> <[email protected]<mailto:[email protected]>> Sent: Thursday, May 14, 2015 1:39 PM To: [email protected]<mailto:[email protected]> Subject: Re: [MarkLogic Dev General] query on xml Hi Pragya, Following code should give the expected result , xquery version "1.0-ml"; declare namespace html = "http://www.w3.org/1999/xhtml"; declare function local:transform($result as node()){ for $name in $result/Name, $law in $result/Law return <result>{($name,$law)}</result> }; let $data := <results> <result> <Name>thg</Name> <Name>rty</Name> <Law>England and Wales</Law> <Law>Latvia</Law> </result> <result> <Name>gux</Name> <Law>India</Law> </result> <result> <Name>abc</Name> <Name>xyz</Name> <Name>cde</Name> <Law>England</Law> </result> </results> let $result :=<results>{ for $result in $data/result return local:transform($result) }</results> return $result Thanks and regards Raja >>> From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On Behalf Of Kapoor, Pragya Sent: Thursday, May 14, 2015 1:05 PM To: MarkLogic Developer Discussion Subject: [MarkLogic Dev General] query on xml Hi, I need to convert the below input to the desired output. The elements in the input xml is dynamic(it could be one element,two,three n so on, not fixed). Input: <results> <result> <Name>thg</Name> <Name>rty</Name> <Law>England and Wales</Law> <Law>Latvia</Law> </result> <result> <Name>gux</Name> <Law>India</Law> </result> <result> <Name>abc</Name> <Name>xyz</Name> <Name>cde</Name> <Law>England</Law> </result> </results> desired output: <results> <result> <Name>thg</Name> <Law>England and Wales</Law></result> <result> <Name>thg</Name> <Law>Latvia</Law></result> <result> <Name>rty</Name> <Law>England and Wales</Law></result> <result> <Name>rty</Name> <Law>Latvia</Law></result> <result> <Name>gux</Name> <Law>India</Law> </result> <result> <Name>abc</Name> <Law>England</Law> </result> <result> <Name>xyz</Name> <Law>England</Law> </result> <result> <Name>cde</Name> <Law>England</Law> </result> </results> Thanks Pragya "This e-mail and any attachments transmitted with it are for the sole use of the intended recipient(s) and may contain confidential , proprietary or privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this e-mail or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful." This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient(s), please reply to the sender and destroy all copies of the original message. Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this email, and/or any action taken in reliance on the contents of this e-mail is strictly prohibited and may be unlawful. Where permitted by applicable law, this e-mail and other e-mail communications sent to and from Cognizant e-mail addresses may be monitored. "This e-mail and any attachments transmitted with it are for the sole use of the intended recipient(s) and may contain confidential , proprietary or privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this e-mail or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful." This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient(s), please reply to the sender and destroy all copies of the original message. Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this email, and/or any action taken in reliance on the contents of this e-mail is strictly prohibited and may be unlawful. Where permitted by applicable law, this e-mail and other e-mail communications sent to and from Cognizant e-mail addresses may be monitored. "This e-mail and any attachments transmitted with it are for the sole use of the intended recipient(s) and may contain confidential , proprietary or privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this e-mail or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful." _______________________________________________ General mailing list [email protected]<mailto:[email protected]> Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general "This e-mail and any attachments transmitted with it are for the sole use of the intended recipient(s) and may contain confidential , proprietary or privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this e-mail or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful." This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient(s), please reply to the sender and destroy all copies of the original message. Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this email, and/or any action taken in reliance on the contents of this e-mail is strictly prohibited and may be unlawful. Where permitted by applicable law, this e-mail and other e-mail communications sent to and from Cognizant e-mail addresses may be monitored. "This e-mail and any attachments transmitted with it are for the sole use of the intended recipient(s) and may contain confidential , proprietary or privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this e-mail or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful." This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient(s), please reply to the sender and destroy all copies of the original message. Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this email, and/or any action taken in reliance on the contents of this e-mail is strictly prohibited and may be unlawful. Where permitted by applicable law, this e-mail and other e-mail communications sent to and from Cognizant e-mail addresses may be monitored.
_______________________________________________ General mailing list [email protected] Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
