在MarkLogic上的服务器端javascript中将XML转换为JSON

时间:2016-07-08 12:09:18

标签: json marklogic marklogic-8

我从文档中检索了以下xml:

<res>
  <basic:coordinates type="array" xmlns:basic="http://marklogic.com/xdmp/json/basic">
    <basic:item type="number">12.1479335</basic:item>
    <basic:item type="number">-68.2676857</basic:item>
  </basic:coordinates>
</res>

现在我希望将其转换为JSON,如:

{"coordinates": [0.0,0.0]}

我有一个类似的查询:

resjson.coordinates = 
  xdmp.toJSON(fn.string(
      res.getElementsByTagNameNS(
        "http://marklogic.com/xdmp/json/basic",
        "coordinates")));

给出

"coordinates": "12.1479335-68.2676857"

哪个不是数组...

1 个答案:

答案 0 :(得分:1)

嗯,我希望有一个更优雅的解决方案,因为坐标已经是一个数组......但是:

var pnts = res.xpath(".//basic:item/text()", {"basic":"http://marklogic.com/xdmp/json/basic"});
res.coordinates = xdmp.toJSON(pnts);

诀窍