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", 
"{&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]<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."
_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to