You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Pablo Pazos (Jira)" <ji...@apache.org> on 2021/07/28 20:25:00 UTC
[jira] [Commented] (GROOVY-5682) Add clone or copy constructor to
XML Node
[ https://issues.apache.org/jira/browse/GROOVY-5682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17389040#comment-17389040 ]
Pablo Pazos commented on GROOVY-5682:
-------------------------------------
[~paulk] I'm running into this issue. My case is generating alternative XML structures for testing a system. The process is:
# provided a sample XML
# there is a generatedor that uses XmlParser to parse the sample and traverse the nodes
# when if finds a specific node, it generates different values for it's children
# each generated value does a clone of the original xml
# then on the clone, the generated values are inserted and the cloned xml is saved in an array to be serialized later
The issue is in 5 I need to execute replaceNode, and for the node I have, from the cloned structure, I get "can't replace the root element", of course the issue is the current node doesn't have the parent set because it was cloned.
I don't have a workaround in terms of using the replaceNode{} though I can start setting parents by hand, is not a good solution for something that I think should come out the clone() method without my intervention.
Now I'm testing the methods submitted by Manish as an alternative to the native clone() method.
> Add clone or copy constructor to XML Node
> -----------------------------------------
>
> Key: GROOVY-5682
> URL: https://issues.apache.org/jira/browse/GROOVY-5682
> Project: Groovy
> Issue Type: New Feature
> Affects Versions: 2.0.1
> Reporter: Marcel Szalbach
> Assignee: Paul King
> Priority: Minor
> Fix For: 2.0.2, 2.1.0-beta-1
>
>
> When retrieving an node from an XML there is no easy way to clone this node for further processing without changing the original XML.
> Currently I used a workaround:
> {code:java}
> def clonedNode = new XmlParser().parseText( XmlUtil.serialize( xmlNode ) )
> {code}
> It would be a lot easier if the Node object have a copy constructor or clone would be supported.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)