保存到MarkLogic时修改XML结构

时间:2018-09-26 16:48:39

标签: marklogic marklogic-8

我实现了一个方法,该方法将xml内容作为字符串参数,并使用以下代码将其写入MarkLogic。

StringHandle stringHandle = new StringHandle();
stringHandle.set(contents);
XMLDocumentManager manager = client.newXMLDocumentManager();
manager.write("/testdoc.xml", stringHandle);

当我在MarkLogic中查看保存的内容时,传入的xml内容与保存的内容有很大的区别。

例如,假设我要跟随xml作为字符串

<employee>
    <employeeName>employeeName1</employeeName>
    <contactNumber>contactNumber1</contactNumber>
    <address>
        <country>ABC</country>
        <state>PQR</state>
        <city>MNO</city>
        <street>IJK</street>
    </address>
</employee>

,并将其插入MarkLogic后,我看到的内容是

<employee>
        <employeeName>employeeName1</employeeName>
        <contactNumber>contactNumber1</contactNumber>
        <address>
            <country>ABC</country>
            <state>PQR</state>
        </address>
        <city>MNO</city>
        <street>IJK</street>
    </employee>

这里的城市和街道元素不在地址元素之内。

请帮助我解决并确定发生这种情况的原因。

2 个答案:

答案 0 :(得分:0)

您是否尝试过将XML更改为常规值?通过这种方式,我的意思是尝试以一种简单的形式更改XML格式-change all the tags to ALPHABETS like <a><b><c> etc如果可以解决您的问题,则意味着您在<address>,<city> and <street>之间存在核对作用,从而使其表现为这种方式。

答案 1 :(得分:0)

是否对摄取过程进行了任何转换?通常,默认情况下,MarkLogic不会执行任何转换。在插入XML之前,有可能将其转换为新结构。 您如何通过put请求或mlcp提取文档?