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]> 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]> 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]> >> 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] < >>> [email protected]> on behalf of David Lee < >>> [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]> >>> 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] < >>> [email protected]> on behalf of DK Singh < >>> [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]> >>> 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] >>>> 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] >>> 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] >>> Manage your subscription at: >>> http://developer.marklogic.com/mailman/listinfo/general >>> >>> >> >
_______________________________________________ General mailing list [email protected] Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
