Java 有没有一种方法可以根据Groovy脚本中的字段内容过滤XML中的多个段?
我有以下需要过滤的XMLJava 有没有一种方法可以根据Groovy脚本中的字段内容过滤XML中的多个段?,java,intellij-idea,groovy,scripting,xml-parsing,Java,Intellij Idea,Groovy,Scripting,Xml Parsing,我有以下需要过滤的XML <Root> <Record> <EmployeeID>E1</EmployeeID> <LocationName>BLR</LocationName> <FirstName>Sriprsad</FirstName> <LastName>Bhat</LastName>
<Root>
<Record>
<EmployeeID>E1</EmployeeID>
<LocationName>BLR</LocationName>
<FirstName>Sriprsad</FirstName>
<LastName>Bhat</LastName>
<MiddleName>Shivaram</MiddleName>
<EmailAddress>sri@test.com</EmailAddress>
</Record>
<Record>
<EmployeeID>E4</EmployeeID>
<LocationName>GGN</LocationName>
<FirstName>Praveen</FirstName>
<LastName>R</LastName>
<MiddleName>T</MiddleName>
<EmailAddress>praveen@test.com</EmailAddress>
</Record>
<Record>
<EmployeeID>E3</EmployeeID>
<LocationName>DEL</LocationName>
<FirstName>Rahul</FirstName>
<LastName>Singh</LastName>
<MiddleName>Markand</MiddleName>
<EmailAddress>rahul@test.com</EmailAddress>
</Record>
<Record>
<EmployeeID>E4</EmployeeID>
<LocationName>CHN</LocationName>
<FirstName>Marko</FirstName>
<LastName>Chacko</LastName>
<MiddleName>Kel</MiddleName>
<EmailAddress>Marko@test.com</EmailAddress>
</Record>
</Root>
将
find
替换为findAll
谢谢,我是Groovy脚本新手,这对我很有帮助。
def list=new XmlParser().parseText(body) //considering that body is containing above XML
def nodeToDel=list.Record.find { it.EmployeeID.text() == 'E4' }
def parent = nodeToDel.parent()
parent.remove(nodeToDel)
def valid_data=XmlUtil.serialize(list)
def deleted_data=XmlUtil.serialize(nodeToDel);
println "${deleted_data}"
println "${valid_data}"