Java 从XML检索数据

Java 从XML检索数据,java,xml,web-services,soap,Java,Xml,Web Services,Soap,我有一个soap web服务,它返回给定的响应: <soap:Envelope xmlns:soap=""> <soap:Body> <ns2:getRegisterValuesResponse xmlns:ns2=""> <return> <id>11931</id> <value>0</value> </return>

我有一个soap web服务,它返回给定的响应:

<soap:Envelope xmlns:soap="">
<soap:Body>
  <ns2:getRegisterValuesResponse xmlns:ns2="">
     <return>
        <id>11931</id>
        <value>0</value>
     </return>
     <return>
        <id>11946</id>
        <value>0</value>
     </return>
     <return>
        <id>11961</id>
        <value>0</value>
     </return>
  </ns2:getRegisterValuesResponse>
</soap:Body>
</soap:Envelope>

使用DOM XML解析器

导入

import java.io.ByteArrayInputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.*;
代码

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
ByteArrayInputStream bais = new ByteArrayInputStream(out.toByteArray());
Document doc = dBuilder.parse(bais);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("return");
for (int i=0;i<nList.getLength();i++) {
   Node nNode = nList.item(i);
   if (nNode.getNodeType() == Node.ELEMENT_NODE) {
      Element curElement = (Element) nNode;
      int id = Integer.parseInt(curElement.getElementsByTagName("id").item(0).getTextContent()); 
      String value = curElement.getElementsByTagName("value").item(0).getTextContent();   
   }
}
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
ByteArrayInputStream bais=新的ByteArrayInputStream(out.toByteArray());
documentdoc=dBuilder.parse(BAI);
doc.getDocumentElement().normalize();
NodeList nList=doc.getElementsByTagName(“返回”);

因为(inti=0;我工作得很好。竖起大拇指。@PiotrCzapla,谢谢!很乐意帮忙。
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
ByteArrayInputStream bais = new ByteArrayInputStream(out.toByteArray());
Document doc = dBuilder.parse(bais);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("return");
for (int i=0;i<nList.getLength();i++) {
   Node nNode = nList.item(i);
   if (nNode.getNodeType() == Node.ELEMENT_NODE) {
      Element curElement = (Element) nNode;
      int id = Integer.parseInt(curElement.getElementsByTagName("id").item(0).getTextContent()); 
      String value = curElement.getElementsByTagName("value").item(0).getTextContent();   
   }
}