在保存到 MarkLogic 时修改 XML 结构



我实现了一种方法,该方法将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>

此处的城市和街道元素位于地址元素之外。

请帮助我解决并确定为什么会发生这种情况。

您是否尝试将XML更改为常规值?我的意思是尝试以简单的形式更改XML格式 -change all the tags to ALPHABETS like <a><b><c> etc如果这解决了您的问题,这意味着您的<address>,<city> and <street>之间存在相关性,这使它的行为像这样。

是否对引入过程应用了任何转换?通常,默认情况下,MarkLogic 不执行任何转换。在插入 XML 之前,它可能会被转换为新结构。 如何通过放置请求或 mlcp 摄取文档?

最新更新