我正在尝试将此 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>
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)
电流输出:
{"Carousel":{"Video":{"Title":"1", "Abstract":"2", "FileName":{"type":"custom", "mediatype":"image", "_value":"D"}, "HasAccess":"3"}}}
我还尝试使用默认的“基本”JSON 设置json:transform-to-json($XML)
但出现错误,例如
XML Element not in expected namespace [http://marklogic.com/xdmp/json/basic] (json:INVALIDELEM): Carousel
它仅在“完整”模式下工作,但它以 JSON 格式添加一些额外信息,如 _attribute 等,这在我的输出 JSON 中不是必需的。
请帮助我或给出任何想法为什么它不返回 JSON 格式的完整输出。