Я пытаюсь преобразовать этот XML-файл в JSON, но не смог добиться успеха. У меня есть два дочерних элемента в моем XML, но он возвращает только последний. Как получить обе записи в формате JSON?Преобразование MarkLogic 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"}}}
Я также пробовал с де неисправности установки «Basic» JSON json:transform-to-json($XML)
но получил ошибку как
XML Element not in expected namespace [http://marklogic.com/xdmp/json/basic] (json:INVALIDELEM): Carousel
Он работает в режиме «Full» только, но это добавляет некоторую дополнительную информацию в формате JSON, как _attribute и т.д., которые не требуется в моем выходе JSON.
Пожалуйста, помогите мне или дайте понять, почему он не возвращает полный выход в формате JSON.
Спасибо, что работает отлично. –
Можно ли пометить все повторяющиеся элементы как массивы в JSON без упоминания всех элементов в 'array-element-names'. Как и в моем случае, будет более 200 элементов, и любой из элементов может произойти более одного раза. –
Не с этой json-библиотекой, я боюсь .. – grtjn