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