【问题标题】:Marklogic xdmp:node-insert-child adds empty xmlnsMarklogic xdmp:node-insert-child 添加空 xmlns
【发布时间】:2018-09-21 20:36:31
【问题描述】:

当我运行以下代码时,我最终在添加的节点中得到了一个空的 xmlns:

declare namespace myns = "http://hello.com/myns";

xdmp:node-insert-child(
    fn:doc($file)/myns:results,
    <event ts="{fn:current-dateTime()}">Removed</event>)

结果:

<?xml version="1.0" encoding="UTF-8"?>
<results xmlns="http://hello.com/myns">
    <event ts="2018-09-21T15:23:23">Created</event>
    <event ts="2018-09-21T15:23:28" xmlns="">Removed</event>
</results>

这会导致问题日志,知道为什么会这样吗?

【问题讨论】:

    标签: xquery marklogic


    【解决方案1】:

    这是因为Created 事件已经在http://hello.com/myns 命名空间中。但是Removed 事件不在任何命名空间中,这就是为什么您在 XML 中看到 xmlns="" 的原因,这将其指定为无命名空间元素。

    如果您希望它们都在同一个命名空间中,您可以为要插入的事件添加前缀或添加默认命名空间声明:

    <myns:event ts="...">
    <event xmlns="http://hello.com/myns" ts="...">
    

    【讨论】:

    • 谢谢。第一种为标签添加前缀的方法在插入的标签中复制了命名空间,但在添加的标签中指定了 xmlns。
    猜你喜欢
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    相关资源
    最近更新 更多