Forum Discussion
pflaumengeist
11 years agoContributor
You could also parse the xml for the inner xml, see example below.
s="""
<Results>
<ResultSet fetchSize="10">
<Row rowNumber="1">
<NAME>CLASSIC_AUDIT</NAME>
<XML_DEFINITION>
<statechart name="CLASSIC_AUDIT" isSubStateChart="true">
<actions>
<action name="AUDIT_INSTANCE" classname="gp.AuditInstance" />
<action name="ANALYZE_RESPONSES" classname="analyzer.AnalyzeResponses" />
<action name="GET_STATE_AND_PARENT" classname="actions.GetAOStateAndParent" />
</actions>
</statechart>
</XML_DEFINITION>
</Row></ResultSet></Results>"""
def xml = new XmlParser().parseText(s)
System.out.println("innerxml as string: " + xml.ResultSet[0].Row[0].XML_DEFINITION[0].text())
//just load the inner xml
def innerxml = new XmlParser().parseText(new XmlParser().parseText(s).ResultSet[0].Row[0].XML_DEFINITION[0].text())
System.out.println("tagname: " + innerxml.actions[0].name())
System.out.println("class: " + innerxml.actions[0].action[0]."@name")
assert "gp.AuditInstance" == innerxml.actions[0].action.findAll{ it."@name" == "AUDIT_INSTANCE"}[0]."@classname"
System.out.println("done")