如何获取包含属性但不包含内容的XML根元素

如何获取包含属性但不包含内容的XML根元素,xml,xpath,xquery,marklogic,Xml,Xpath,Xquery,Marklogic,XML: 孩子2\u家长1 孩子4\u父母1 孩子1\u父母1 孩子3\u父母1 预期产出: <Parent id='1' name='Parent_1'> <Children name='Children'> <child name='Child_2' id='2'>child2_Parent_1</child> <child name='Child_4' id='4'>child4_Paren

XML:


孩子2\u家长1
孩子4\u父母1
孩子1\u父母1
孩子3\u父母1
预期产出:

  <Parent id='1' name='Parent_1'>
    <Children name='Children'>
      <child name='Child_2' id='2'>child2_Parent_1</child>
      <child name='Child_4' id='4'>child4_Parent_1</child>
      <child name='Child_1' id='3'>child1_Parent_1</child>
      <child name='Child_3' id='1'>child3_Parent_1</child>
    </Children>
  </Parent>

嗨,我已经给出了一些示例XML。我尝试了X查询以获得结果,但我无法识别。你能帮个忙吗


谢谢

我会使用计算元素构造函数来实现这一点,它的内容只会重新填充属性

 <Parent id='1' name='Parent_1'>
let$root:=(:文档,副本粘贴在下面:)
孩子2\u家长1
孩子4\u父母1
孩子1\u父母1
孩子3\u父母1
返回元素{node name($root)}{$root/@*}
还可以将其他内容插入此元素,如下所示:

let $root := (: the document, copy-pasted below :)
  <Parent id='1' name='Parent_1'>
    <Children name='Children'>
      <child name='Child_2' id='2'>child2_Parent_1</child>
      <child name='Child_4' id='4'>child4_Parent_1</child>
      <child name='Child_1' id='3'>child1_Parent_1</child>
      <child name='Child_3' id='1'>child3_Parent_1</child>
    </Children>
  </Parent>
return element { node-name($root) } { $root/@* }
let$root:=(:文档,副本粘贴在下面:)
孩子2\u家长1
孩子4\u父母1
孩子1\u父母1
孩子3\u父母1
返回元素{node name($root)}{
$root/@*,
,
}

谢谢Ghislain..但是我遇到了以下错误“不能使用()作为元素名”解决了这个问题..再次感谢您,如何获得像“”这样的结束标记,请执行必要的操作。嗨,Antony。如果没有内容,则(末尾的斜杠)相当于。XQuery将负责确保在将新元素序列化回XML时正确关闭标记。我的期望是因为我最终添加了一些内容和关闭标签。
let $root := (: the document, copy-pasted below :)
  <Parent id='1' name='Parent_1'>
    <Children name='Children'>
      <child name='Child_2' id='2'>child2_Parent_1</child>
      <child name='Child_4' id='4'>child4_Parent_1</child>
      <child name='Child_1' id='3'>child1_Parent_1</child>
      <child name='Child_3' id='1'>child3_Parent_1</child>
    </Children>
  </Parent>
return element { node-name($root) } {
  $root/@*,
  <foo/>,
  <bar/>
}