小编Nav*_*wat的帖子

MarkLogic XML到JSON的转换

我试图将此XML文件转换为JSON但无法取得任何成功.我的XML中有两个子元素,但它只返回最后一个.如何以JSON格式获取两个记录?

XML

 <Carousel>
  <Video>
    <Title>1</Title>
    <Abstract>3</Abstract>
    <FileName type="custom" mediatype="image">D</FileName>
    <HasAccess>4</HasAccess>
  </Video>
  <Video>
    <Title>1</Title>
    <Abstract>2</Abstract>
    <FileName type="custom" mediatype="image">D</FileName>
    <HasAccess>3</HasAccess>
  </Video>
</Carousel>
Run Code Online (Sandbox Code Playgroud)

XQUERY:

import module namespace json = "http://marklogic.com/xdmp/json"  at "/MarkLogic/json/json.xqy";

let $custom := let $config := json:config("custom")
           return 
             (
              map:put( $config, "whitespace", "ignore" ),

              $config
             )
let $XML := $XMLFile (: XML content :)
return json:transform-to-json($XML,$custom)
Run Code Online (Sandbox Code Playgroud)

当前输出:

{"Carousel":{"Video":{"Title":"1", "Abstract":"2", "FileName":{"type":"custom", "mediatype":"image", "_value":"D"}, "HasAccess":"3"}}}
Run Code Online (Sandbox Code Playgroud)

我也尝试使用默认的"基本"JSON设置,json:transform-to-json($XML)但得到了错误

XML Element not in expected namespace [http://marklogic.com/xdmp/json/basic] (json:INVALIDELEM): Carousel
Run Code Online (Sandbox Code Playgroud)

它仅在"完全"模式下工作,但它正在添加一些JSON格式的额外信息,如_attribute等,这在我的输出JSON中是不需要的.

请帮助我或者说明为什么它没有以JSON格式返回完整的输出.

marklogic

3
推荐指数
1
解决办法
1703
查看次数

标签 统计

marklogic ×1