[英]Groovy:XMl: How to remove and replace child tag with in a chid tag
我有一个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>
"""
这是我所拥有的请求,我需要用这个请求创建另一个请求,这就像在myRequest中一样
String myRequest = """
<School>
<Classes>
<Class>
<Name>Anil</Name>
<RollNumber>16</RollNumber>
</Class>
<Class>
<Name>manu</Name>
<RollNumber>21</RollNumber>
</Classes>
</School>
"""
我怎样才能通过使用
parsed = new XmlSlurper (false, false).parseText( requestXml )
String myRequest = new StreamingMarkupBuilder().bind {
mkp.yield parsed.Classes.children()
}
如何删除<Teachers>
标签? 还有如何删除标签<RollNumber>21</RollNumber>
并插入新标签<Rank>2</Rank>
您可以在需要删除的节点上使用replaceNode()
。 它适用于“ 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.