gpt4 book ai didi

xml - 用另一个 Node 实例替换 XML Node

转载 作者:数据小太阳 更新时间:2023-10-29 02:25:55 26 4
gpt4 key购买 nike

我使用 groovy 使用 XmlParser 解析 XML 文件.使用点符号,我可以接收所需的节点作为 Node实例。

对于我的用例,一个节点被克隆、编辑并在编辑结束后替换原始节点。

节点对象有一个 replaceNode已实现,预计会关闭,使用此文档:

Replaces the current node with nodes defined using builder-style notation via a Closure.

@param c A Closure defining the new nodes using builder-style notation.

我的问题是,如何将一个 Node 实例替换为另一个 Node 实例?

这就是我现在所做的,当然这是行不通的:

Node referenceNode
Node editedNode
referenceNode.replaceNode {
editedNode
}

因为 plus() 方法也期望相同的语法,这对我来说有点困难。

这是一个相关问题,已使用 XmlSlurper 解决,我不想这样做:Groovy: Node.replaceNode with Node?

最佳答案

只需用您要替换的节点调用replaceNode:

import groovy.xml.*

def xml = '''
<root>
<user><name>a</name></user>
<user><name>b</name></user>
<user><name>c</name></user>
</root>'''

parser = new XmlParser().parseText(xml)

Node newNode = parser.user[2].clone()
newNode.@something = 'woo'
parser.user[1].replaceNode(newNode)

println XmlUtil.serialize(parser)

打印:

<?xml version="1.0" encoding="UTF-8"?><root>
<user>
<name>a</name>
</user>
<user something="woo">
<name>c</name>
</user>
<user>
<name>c</name>
</user>
</root>

关于xml - 用另一个 Node 实例替换 XML Node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36408665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com