Android XML Document Create createDocument(final String source, boolean isNamespaceAware)

Here you can find the source of createDocument(final String source, boolean isNamespaceAware)

Description

create Document

License

Open Source License

Declaration

public static Document createDocument(final String source,
            boolean isNamespaceAware) throws IOException 

Method Source Code

//package com.java2s;
/*/*from  w w  w .  j  a v a2  s. c o m*/
 * This software code is (c) 2010 T-Mobile USA, Inc. All Rights Reserved.
 *
 * Unauthorized redistribution or further use of this material is
 * prohibited without the express permission of T-Mobile USA, Inc. and
 * will be prosecuted to the fullest extent of the law.
 *
 * Removal or modification of these Terms and Conditions from the source
 * or binary code of this software is prohibited.  In the event that
 * redistribution of the source or binary code for this software is
 * approved by T-Mobile USA, Inc., these Terms and Conditions and the
 * above copyright notice must be reproduced in their entirety and in all
 * circumstances.
 *
 * No name or trademarks of T-Mobile USA, Inc., or of its parent company,
 * Deutsche Telekom AG or any Deutsche Telekom or T-Mobile entity, may be
 * used to endorse or promote products derived from this software without
 * specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" AND "WITH ALL FAULTS" BASIS
 * AND WITHOUT WARRANTIES OF ANY KIND.  ALL EXPRESS OR IMPLIED
 * CONDITIONS, REPRESENTATIONS OR WARRANTIES, INCLUDING ANY IMPLIED
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
 * NON-INFRINGEMENT CONCERNING THIS SOFTWARE, ITS SOURCE OR BINARY CODE
 * OR ANY DERIVATIVES THEREOF ARE HEREBY EXCLUDED.  T-MOBILE USA, INC.
 * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
 * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE
 * OR ITS DERIVATIVES.  IN NO EVENT WILL T-MOBILE USA, INC. OR ITS
 * LICENSORS BE LIABLE FOR LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
 * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES,
 * HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT
 * OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF T-MOBILE USA,
 * INC. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 *
 * THESE TERMS AND CONDITIONS APPLY SOLELY AND EXCLUSIVELY TO THE USE,
 * MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE, ITS SOURCE OR BINARY
 * CODE OR ANY DERIVATIVES THEREOF, AND ARE SEPARATE FROM ANY WRITTEN
 * WARRANTY THAT MAY BE PROVIDED WITH A DEVICE YOU PURCHASE FROM T-MOBILE
 * USA, INC., AND TO THE EXTENT PERMITTED BY LAW.
 */

import android.util.Log;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.xml.sax.SAXException;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;

import java.io.ByteArrayInputStream;
import java.io.IOException;

public class Main {
    public static Document createDocument(final String source,
            boolean isNamespaceAware) throws IOException {
        final Document document;

        DocumentBuilder builder = createDocumentBuilder(isNamespaceAware);

        try {
            document = builder.parse(new ByteArrayInputStream(source
                    .getBytes()));
        } catch (SAXException e) {
            String errMsg = "Failed to parse XML source(" + e.getMessage()
                    + ") [" + source + "]";
            logAsSplittedStrings("XMLUtils", errMsg);
            throw new IOException(e.getMessage());
        } catch (DOMException e) {
            String errMsg = "Failed to parse XML source(" + e.getMessage()
                    + ") [" + source + "]";
            logAsSplittedStrings("XMLUtils", errMsg);
            throw new IOException(e.getMessage());
        }

        return document;
    }

    private static DocumentBuilder createDocumentBuilder(
            boolean isNamespaceAware) throws IOException {
        final DocumentBuilder builder;

        DocumentBuilderFactory factory = DocumentBuilderFactory
                .newInstance();
        factory.setNamespaceAware(isNamespaceAware);

        try {
            builder = factory.newDocumentBuilder();
        } catch (ParserConfigurationException e) {
            throw new IOException(e.getMessage());
        }

        return builder;
    }

    public static void logAsSplittedStrings(final String prefix,
            final String msg) {
        final String[] strings = msg.split("\r\n|\r|\n");
        for (String msgString : strings) {
            Log.i(prefix, msgString);
        }
    }
}

Related

  1. createNewDocument()
  2. createDocument()
  3. newDocument(String rootName)
  4. stringToDocument(String xmlString)
  5. stringToDocument(String xmlString)
  6. createXml(Document document)
  7. getOrCreateElement(Document doc, Element manifestElement, String elementName)
  8. getDomElement(File xmlFile)
  9. getDomElement(String aXml)