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",
>>> "{&quot;document&quot;:{&quot;docID&quot;:&quot;\/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

Reply via email to