小编T_Y*_*T_Y的帖子

groovy创建新的xml节点

我想创建一个简单的xml节点,然后查看来自http://docs.groovy-lang.org/latest/html/api/groovy/util/Node.html的文档并编写这些代码.

    def newbook = new Node(null, 'book', [id:'3'])
    newbook.appendNode(new Node(newbook,'title',[id:'BookId3']))
    newbook.appendNode(new Node(newbook,'author',[id:'3'],'Harper Lee'))

    println groovy.xml.XmlUtil.serialize(newbook)
Run Code Online (Sandbox Code Playgroud)

但输出是

<?xml version="1.0" encoding="UTF-8"?><book id="3">
  <title id="BookId3"/>
  <title/>
  <author id="3">Harper Lee</author>
  <author/>
</book>
Run Code Online (Sandbox Code Playgroud)

在我看来,有两个标题标签和作者标签被创建.为什么?

我也试过了

    def newbook = new Node(null, 'book', [id:'3'])
    newbook.appendNode(new QName('title'),'BookId3')
    newbook.appendNode(new QName('author'),[id:'3'],'Harper Lee')
    println groovy.xml.XmlUtil.serialize(newbook)
Run Code Online (Sandbox Code Playgroud)

输出是

<?xml version="1.0" encoding="UTF-8"?><book id="3">
  <title xmlns="">BookId3</title>
  <author xmlns="" id="3">Harper Lee</author>
</book>
Run Code Online (Sandbox Code Playgroud)

现在它看起来不错,但有没有办法删除命名空间?

理想情况下,我希望有这样的东西

<book id="3">
  <title>BookId3</title>
  <author id="3">Harper Lee</author>
</book>
Run Code Online (Sandbox Code Playgroud)

然后在replaceNode()方法中使用它

xml groovy

2
推荐指数
1
解决办法
2771
查看次数

标签 统计

groovy ×1

xml ×1