[英]Groovy:XMl: How to remove and replace child tag with in a chid tag
I have an xml request i need to create another xml with request with this request without certain child tags 我有一个xml请求,我需要使用该请求创建另一个xml,而没有某些子标记
String requestXml = """
<School>
<Classes>
<Class>
<Teachers>
<Name>Rama</Name>
<Name>Indhu</Name>
</Teachers>
<Name>Anil</Name>
<RollNumber>16</RollNumber>
</Class>
<Class>
<Teachers>
<Name>Nisha</Name>
<Name>Ram</Name>
</Teachers>
<Name>manu</Name>
<RollNumber>21</RollNumber>
</Class>
</Classes>
</School>
"""
this is the request which i have,i need to create another request with this one and it would be like this in myRequest 这是我所拥有的请求,我需要用这个请求创建另一个请求,这就像在myRequest中一样
String myRequest = """
<School>
<Classes>
<Class>
<Name>Anil</Name>
<RollNumber>16</RollNumber>
</Class>
<Class>
<Name>manu</Name>
<RollNumber>21</RollNumber>
</Classes>
</School>
"""
how can i achive this by using 我怎样才能通过使用
parsed = new XmlSlurper (false, false).parseText( requestXml )
String myRequest = new StreamingMarkupBuilder().bind {
mkp.yield parsed.Classes.children()
}
How can i remove the <Teachers>
tag? 如何删除
<Teachers>
标签? also how to remove the tag <RollNumber>21</RollNumber>
and insert new tag <Rank>2</Rank>
还有如何删除标签
<RollNumber>21</RollNumber>
并插入新标签<Rank>2</Rank>
You can use replaceNode()
on the node that is needed to be removed. 您可以在需要删除的节点上使用
replaceNode()
。 It applies to all Teachers
nodes under Classes
parent. 它适用于“
Classes
父级下的所有“ Teachers
节点。
import groovy.xml.XmlUtil
def xml = '''
<School>
<Classes>
<Class>
<Teachers>
<Name>Rama</Name>
<Name>Indhu</Name>
</Teachers>
<Name>Anil</Name>
<RollNumber>16</RollNumber>
</Class>
<Class>
<Teachers>
<Name>Nisha</Name>
<Name>Ram</Name>
</Teachers>
<Name>manu</Name>
<RollNumber>21</RollNumber>
</Class>
</Classes>
</School>
'''
def parsed = new XmlSlurper().parseText( xml )
//Remove all Teachers node
parsed.Classes.Class.Teachers.replaceNode { }
XmlUtil.serialize( parsed )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.