Hi Matthew,
How can the below used in MarkLogic 5? Thanks Pragya ________________________________ From: [email protected] <[email protected]> on behalf of Kapoor, Pragya <[email protected]> Sent: Wednesday, January 11, 2017 3:41:44 PM To: [email protected] Subject: Re: [MarkLogic Dev General] General Digest, Vol 151, Issue 20 Thanks a million [😊] This works for me. ________________________________ From: [email protected] <[email protected]> on behalf of Matthew Royal <[email protected]> Sent: Wednesday, January 11, 2017 1:10:27 PM To: [email protected] Subject: Re: [MarkLogic Dev General] General Digest, Vol 151, Issue 20 Pragya, Regarding xml to json conversion, where the resulting output is headless. I wrote a library that can do this. You will need to upload it to your modules database at /utilities/jsonify.xqy or wherever is convenient. jsonify.xqy at https://gist.github.com/masyukun/4190b195afb02e940453c3fbb829dcc4 xquery version "1.0-ml"; import module namespace jsontools = "http://matthewroyal.com/marklogic/jsontools" at "/utilities/jsonify.xqy"; import module namespace json = "http://marklogic.com/xdmp/json" at "/MarkLogic/json/json.xqy"; let $xml := <document> <document-id>/docs/abc.xml</document-id> <action>add</action> <metadata> <name>XYZ</name> <value>fsddddddddddddddddddddddddddddddd sdgsdsdsdsdsdsdsdsdsdsd</value> <type>text</type> </metadata> <metadata> <name>Period</name> <value>aertw hegheh eheheh ghhehe</value> <type>text</type> </metadata> </document> return jsontools:jsonify( $xml/child::*, "headless" ) Returns: {"document-id":"/docs/abc.xml", "action":"add", "metadata":[{"name":"XYZ", "value":"fsddddddddddddddddddddddddddddddd sdgsdsdsdsdsdsdsdsdsdsd", "type":"text"}, {"name":"Period", "value":"aertw hegheh eheheh ghhehe", "type":"text"}]} Matthew Royal MarkLogic Senior Consultant On Tue, Jan 10, 2017 at 5:31 AM, <[email protected]<mailto:[email protected]>> wrote: Send General mailing list submissions to [email protected]<mailto:[email protected]> To subscribe or unsubscribe via the World Wide Web, visit http://developer.marklogic.com/mailman/listinfo/general or, via email, send a message with subject or body 'help' to [email protected]<mailto:[email protected]> You can reach the person managing the list at [email protected]<mailto:[email protected]> When replying, please edit your Subject line so it is more specific than "Re: Contents of General digest..." Today's Topics: 1. Re: Json file (Kapoor, Pragya) ---------------------------------------------------------------------- Message: 1 Date: Tue, 10 Jan 2017 10:31:44 +0000 From: "Kapoor, Pragya" <[email protected]<mailto:[email protected]>> Subject: Re: [MarkLogic Dev General] Json file To: MarkLogic Developer Discussion <[email protected]<mailto:[email protected]>> Message-ID: <hk2pr02mb1364a2c18ce6f1508ddc25a3ea...@hk2pr02mb1364.apcprd02.prod.outlook.com<mailto:hk2pr02mb1364a2c18ce6f1508ddc25a3ea...@hk2pr02mb1364.apcprd02.prod.outlook.com>> Content-Type: text/plain; charset="us-ascii" Hi Dharmendra, Thanks for the reply, but didnt work the Required output is: {"document-id":"\/docs\/abc.xml", "action":"add", "metadata":[{"name":"XYZ", "value":"fsddddddddddddddddddddddddddddddd sdgsdsdsdsdsdsdsdsdsdsd", "type":"text"},{"name":"Period", "value":"aertw hegheh eheheh ghhehe", "type":"text"}]} This is a valid json without root. Thanks Pragya ________________________________ From: [email protected]<mailto:[email protected]> <[email protected]<mailto:[email protected]>> on behalf of DK Singh <[email protected]<mailto:[email protected]>> Sent: Monday, January 9, 2017 5:44:44 PM To: MarkLogic Developer Discussion Subject: Re: [MarkLogic Dev General] Json file Try out the code if it works as your requirement Regards Dharmendra Kumar Singh On Jan 9, 2017 5:34 PM, "DK Singh" <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> wrote: Hi Pragya You can try out the below code: json:transform-to-json($xml/child::*,$custom) but your json output won't be valid. Regards Dharmendra Kumar Singh On Mon, Jan 9, 2017 at 5:31 PM, DK Singh <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> wrote: Hi Pragya, You can not remove the element "document" because it is root element either XML or JSON must have a root element, you can remove the child elements but not the root element "document". You can replace the element document with other element. if you remove the element 'document' your document will not be valid Regards Dharmendra Kumar Singh On Mon, Jan 9, 2017 at 5:08 PM, Kapoor, Pragya <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> wrote: Hi, Now I want to ignore the document element while constructing the json: import module namespace json = "http://marklogic.com/xdmp/json" at "/MarkLogic/json/json.xqy"; declare variable $xml := <document> <document-id>/docs/abc.xml</document-id> <action>add</action> <metadata> <name>XYZ</name> <value>fsddddddddddddddddddddddddddddddd sdgsdsdsdsdsdsdsdsdsdsd</value> <type>text</type> </metadata> <metadata> <name>Period</name> <value>aertw hegheh eheheh ghhehe</value> <type>text</type> </metadata> </document> ; let $custom := let $config := json:config("custom") let $_ := map:put( $config, "whitespace", "ignore" ) let $_ := map:put( $config, "ignore-element-names", "document" ) let $_ := map:put( $config, "array-element-names", "metadata" ) return $config let $json := json:transform-to-json($xml,$custom) return $json But with the above code its not ignoring the document element. Required output: {"document-id":"\/docs\/abc.xml", "action":"add", "metadata":[{"name":"XYZ", "value":"fsddddddddddddddddddddddddddddddd sdgsdsdsdsdsdsdsdsdsdsd", "type":"text"},{"name":"Period", "value":"aertw hegheh eheheh ghhehe", "type":"text"}]} Please let me know, if I am missing something. I am using MarkLogic 7 Thanks Pragya ________________________________ From: [email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>> <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> on behalf of David Lee <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> Sent: Tuesday, January 3, 2017 6:39:28 PM To: MarkLogic Developer Discussion Subject: Re: [MarkLogic Dev General] Json file In v7 transform-to-json returns a string. Try xdmp:save("file", text { $json }) -DavId Lee Sent from my iPad On Jan 3, 2017, at 5:24 AM, Kapoor, Pragya <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> wrote: Hi, I am getting this error: XDMP-ARGTYPE: (err:XPTY0004) xdmp:save("C:\123", "{"document":{"docID":"\/docs\/0000002-0...") -- arg2 is not of type node() I am using MarkLogic 7. declare variable $xml := <document docID="/docs/0000002-0000468-0004456-ISDA-COL-XXXX_2015-04-01_06-33-57-639.xml" action="add"> <metadata> <name>XYZ</name> <value>fsddddddddddddddddddddddddddddddd sdgsdsdsdsdsdsdsdsdsdsd</value> <type>text</type> </metadata> <metadata> <name>Period</name> <value>aertw hegheh eheheh ghhehe</value> <type>text</type> </metadata> </document>; let $uri := "123" let $custom := let $config := json:config("custom") let $_ := map:put( $config, "whitespace", "ignore" ) let $_ := map:put( $config, "array-element-names", "metadata" ) return $config let $json := json:transform-to-json($xml,$custom) return ( xdmp:save(concat('C:\test\', $uri), $json) ) Thanks Pragya ________________________________ From: [email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>> <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> on behalf of DK Singh <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> Sent: Monday, January 2, 2017 1:06:24 PM To: MarkLogic Developer Discussion Subject: Re: [MarkLogic Dev General] Json file Hi Pragya, You can try out the below mentioned code: import module namespace json = "http://marklogic.com/xdmp/json" at "/MarkLogic/json/json.xqy"; for $xmls in fn:collection('MarcVideo')[1 to 10] let $xmls1 := xdmp:quote($xmls) let $xmls2 := xdmp:unquote($xmls1) let $uri := base-uri($xmls) let $token := tokenize($uri,'/')[last()] let $custom := let $config := json:config("custom") let $_ := map:put( $config, "whitespace", "ignore" ) let $_ := map:put( $config, "array-element-names", "Video" ) return $config let $json := json:transform-to-json($xmls,$custom) return ( xdmp:save(concat('D:\test\', $token), $json) ) Regards Dharmendra Kumar Singh On Mon, Jan 2, 2017 at 12:28 PM, Kapoor, Pragya <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> wrote: Hi, Requirement: 1. Convert xmls stored in marklogic db to json then save them to file system. 2. Store in-memory json in ML DB How can we achieve the same? 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." _______________________________________________ General mailing list [email protected]<mailto:[email protected]><mailto:[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." _______________________________________________ General mailing list [email protected]<mailto:[email protected]><mailto:[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." _______________________________________________ General mailing list [email protected]<mailto:[email protected]><mailto:[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." -------------- next part -------------- An HTML attachment was scrubbed... URL: http://developer.marklogic.com/pipermail/general/attachments/20170110/f61da355/attachment.html ------------------------------ _______________________________________________ General mailing list [email protected]<mailto:[email protected]> Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general End of General Digest, Vol 151, Issue 20 **************************************** "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 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] Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
