Извлечение элементов из XML и присвоение переменной - PullRequest
1 голос
/ 27 сентября 2019

Из этого данного 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")

, но все они ничего не возвращают.

Как мне этого добиться?Я получу много таких наборов ответов, и мне придется делать одно и то же извлечение и назначение для всех наборов.

1 Ответ

1 голос
/ 27 сентября 2019

Вот как это извлечь:

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)
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...