XML DOM Parser

来源:互联网 发布:图章设计软件 编辑:程序博客网 时间:2024/06/05 11:04
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.StringBufferInputStream;
import java.util.Properties;

public class GetFailedTask
{
    
    public void getFailedTask(String soapResponse)
    {
        try{
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(new StringBufferInputStream(soapResponse));
            doc.getDocumentElement().normalize();
    
            System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
            NodeList nList = doc.getElementsByTagName("TaskStatus");
            System.out.println("-----------------------");
            
            for (int temp = 0; temp < nList.getLength(); temp++) {
                
                   Node nNode = nList.item(temp);
                   if (nNode.getNodeType() == Node.ELEMENT_NODE) {
        
                      Element eElement = (Element) nNode;
        
                      System.out.println("Tag1 is: " + getTagValue("Tag1", eElement));
                      System.out.println("Tag2 is:" + getTagValue("Tag2", eElement));
                      System.out.println("Tag3 is:" + getTagValue("Tag3", eElement));
                      System.out.println("Tag4 is: " + getTagValue("Tag4", eElement));
                      System.out.println("-------------------------");
                    }
                }
        }catch(Exception e){
            e.printStackTrace();
        }
 
    }
    
    private static String getTagValue(String sTag, Element eElement) {
        
        NodeList nlList = null;
        Node nValue = null;
        if(eElement.getElementsByTagName(sTag).getLength() != 0){
            nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes();
            nValue = (Node) nlList.item(0);
            return nValue.getNodeValue();
        }
     
        return "";
      }
}