Я получаю следующий xml из ответа.Может кто-нибудь помочь мне с Java-кодом для получения текста: 1. trafficscript 2. NAMAN: 456 3. vservers 4. vservername 3. certmessage
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<zeusac:eventOccurred xmlns:zeusac="http://soap.zeus.com/zxtm/1.0/AlertCallback/"
xmlns:zeusns="http://soap.zeus.com/zxtm/1.0/">
<zeusac:zxtm xsi:type="xsd:string">hostname</zeusac:zxtm>
<zeusac:time xsi:type="xsd:dateTime">2019-09-24T20:42:39Z</zeusac:time>
<zeusac:severity xsi:type="zeusns:AlertCallback.Severity">INFO</zeusac:severity>
<zeusac:primary_tag xsi:type="zeusns:AlertCallback.Tag">CustomEvent</zeusac:primary_tag>
<tags soapenc:arrayType="zeusns:AlertCallback.Tag[0]" xsi:type="soapenc:Array"/>
<objects soapenc:arrayType="zeusns:AlertCallback.Object[3]" xsi:type="soapenc:Array">
<Item xsi:type="zeusns:AlertCallback.Object">
<type xsi:type="zeusns:AlertCallback.ObjectType">trafficscript</type>
<name xsi:type="xsd:string">NAMAN:456</name>
</Item>
<Item xsi:type="zeusns:AlertCallback.Object">
<type xsi:type="zeusns:AlertCallback.ObjectType">rules</type>
<name xsi:type="xsd:string">Request-Naman</name>
</Item>
<Item xsi:type="zeusns:AlertCallback.Object">
<type xsi:type="zeusns:AlertCallback.ObjectType">vservers</type>
<name xsi:type="xsd:string">vservername</name>
</Item>
</objects>
<zeusac:description xsi:type="xsd:string">certmessage
</zeusac:description>
<zeusac:additional xsi:type="xsd:string"/>
<zeusac:event_type xsi:type="xsd:string">Custom events</zeusac:event_type>
</zeusac:eventOccurred>
</soap:Body>
</soap:Envelope>
Я попытался с помощью онлайн-генератора xpath, а также попробовал Dom Parser, ноэто не сработало.Я хочу легкий вес и быстрое решение для разбора.Может ли кто-нибудь помочь мне с кодом Java здесь?
Что-то, что я пробовал: 1. Я пытался извлечь NAMAN: 456
//xml Input is the soap response
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(new StringReader(xmlInput)));
XPath xpath = XPathFactory.newInstance().newXPath();
String r = "/soap:Envelope[@xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"]/soap:Body/zeusac:eventOccurred[@xmlns:zeusac=\"http://soap.zeus.com/zxtm/1.0/AlertCallback/\"]/objects[@soapenc:arrayType=\"zeusns:AlertCallback.Object[3]\"]/Item[1]/name[@xsi:type=\"xsd:string\"]/text()";
Node cv2 = (Node) xpath.evaluate(r,
doc.getDocumentElement(), XPathConstants.NODE);
System.out.println(" value of this:" + cv2.getNodeValue());