Из этого данного XML я хотел бы извлечь значения для тега и назначить их переменной.Я использую scala.
<soap:Envelope xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:wsdlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:iav="http://www.informatica.com/xxx/yy/ABC_DE_Fghijklmn"> <soap:Body> <iav:OperationResponse> <iav:XYZ>AAA</iav:XYZ> <iav:Code/> </iav:OperationResponse> </soap:Body> </soap:Envelope>
Данный XML назначен на val соответственно.Я пробовал варианты, такие как:
(resp.get \\"iav:XYZ") (resp.get \"@iav:XYZ") (resp.get \\"@iav:XYZ") (resp.get \"@iav:XYZ")
, но все они ничего не возвращают.
Как мне этого добиться?Я получу много таких наборов ответов, и мне придется делать одно и то же извлечение и назначение для всех наборов.
Вот как это извлечь:
import scala.xml.Elem object StackOverflow { def main(args: Array[String]): Unit = { val xml = """<soap:Envelope xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:wsdlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:iav="http://www.informatica.com/xxx/yy/ABC_DE_Fghijklmn"> <soap:Body> <iav:OperationResponse> <iav:XYZ>AAA</iav:XYZ> <iav:Code/> </iav:OperationResponse> </soap:Body> </soap:Envelope>""" val xmlElem: Elem = scala.xml.XML.loadString(xml) val operationResponse = xmlElem \\ "OperationResponse" val xyz = operationResponse \ "XYZ" print( "Operation response is " + xyz.text) } }