Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有一种方法可以根据Groovy脚本中的字段内容过滤XML中的多个段?_Java_Intellij Idea_Groovy_Scripting_Xml Parsing - Fatal编程技术网

Java 有没有一种方法可以根据Groovy脚本中的字段内容过滤XML中的多个段?

Java 有没有一种方法可以根据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>

我有以下需要过滤的XML

<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}"