Marklogic 转换为json——自定义配置删除元素?没有阵列?
我有以下xmlMarklogic 转换为json——自定义配置删除元素?没有阵列?,marklogic,Marklogic,我有以下xml <foods xmlns="http://example.com/agt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <food id="1" name="celery"> <price>50.2</price> </food> <food id="2" name="beets"> <price&g
<foods
xmlns="http://example.com/agt"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
<food id="1" name="celery">
<price>50.2</price>
</food>
<food id="2" name="beets">
<price>23.3</price>
</food>
<food id="3" name="goat cheese">
<price>0.5</price>
</food>
</foods>
。。。我得到:
{"foods":{"food":{"id":3, "name":"goat cheese", "price":0.5}}}
有些东西不适合我。食物成分发生了什么变化?没有数组,只有最后一个数组进入输出。请注意,去掉数组元素名称并不能解决缺少的食物元素
这是一个错误还是我做错了?我刚开始使用MarkLogic Server,所以我很可能做错了。感谢您的建议。您需要指出食物是数组元素。 由于您现在已将食物放在名称空间中,因此数组元素名称找不到它。 您需要使用xs:QName()来给出“food”的全名,或者使用 e、 g.这应该行得通
, $_ := map:put($c,"array-element-names", xs:QName("agt:food") )
或者
, $_ := map:put($c,"element-namespace","http://example.com/agt")
这有一个很好的副作用,使转换可逆。谢谢!我完全忽略了名称空间问题。对于那些感兴趣的人来说,这次讨论是在。
, $_ := map:put($c,"array-element-names", xs:QName("agt:food") )
, $_ := map:put($c,"element-namespace","http://example.com/agt")