domresponseparser.java

来自「world wind java sdk 源码」· Java 代码 · 共 100 行

JAVA
100
字号
/*
Copyright (C) 2001, 2008 United States Government as represented by
the Administrator of the National Aeronautics and Space Administration.
All Rights Reserved.
*/
package gov.nasa.worldwind.applications.gio.csw;

import gov.nasa.worldwind.util.Logging;

import java.io.BufferedInputStream;
import java.io.InputStream;

/**
 * @author Lado Garakanidze
 * @version $Id: DOMResponseParser.java 9411 2009-03-16 21:03:25Z tgaskins $
 */
public class DOMResponseParser implements ResponseParser
{
    private org.w3c.dom.Document doc;

    public DOMResponseParser()
    {
    }

    public void parseResponse(InputStream is) throws Exception
    {
        if (is == null)
        {
            String message = "nullValue.InputStreamIsNull";
            Logging.logger().severe(message);
            throw new IllegalArgumentException(message);
        }

        this.doc = parse(is);
    }

    public org.w3c.dom.Document getDocument()
    {
        return this.doc;
    }

    public org.w3c.dom.Node getDocumentElement()
    {
        return this.doc != null ? this.doc.getDocumentElement() : this.doc;
    }

    public String toXml()
    {
        javax.xml.transform.TransformerFactory transformerFactory =
                javax.xml.transform.TransformerFactory.newInstance();
        try
        {
            // The StringWriter will receive the document xml.
            java.io.StringWriter stringWriter = new java.io.StringWriter();
            // Attempt to write the Document to the StringWriter.
            javax.xml.transform.Transformer transformer = transformerFactory.newTransformer();
            transformer.transform(
                    new javax.xml.transform.dom.DOMSource(this.doc),
                    new javax.xml.transform.stream.StreamResult(stringWriter));
            // If successful, return the StringWriter contents as a String.
            return stringWriter.toString();
        }
        catch (javax.xml.transform.TransformerConfigurationException e)
        {
            String message = Logging.getMessage("generic.ExceptionWritingXml");
            Logging.logger().severe(message);
            return null;
        }
        catch (javax.xml.transform.TransformerException e)
        {
            String message = Logging.getMessage("generic.ExceptionWritingXml");
            Logging.logger().severe(message);
            return null;
        }
    }

    public String toString()
    {
        return toXml();
    }

    private static org.w3c.dom.Document parse(InputStream is)
    {
        try
        {
            javax.xml.parsers.DocumentBuilderFactory docBuilderFactory =
                    javax.xml.parsers.DocumentBuilderFactory.newInstance();
            javax.xml.parsers.DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
            BufferedInputStream bi = new BufferedInputStream(is);
            return docBuilder.parse(bi);
        }
        catch (Exception e)
        {
            String message = "csw.ExceptionParsingResponse";
            Logging.logger().severe(message);
            throw new IllegalArgumentException(message, e);
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?