DOM helper for root element : DOM Element « XML « Java

Java
1. 2D Graphics GUI
2. 3D
3. Advanced Graphics
4. Ant
5. Apache Common
6. Chart
7. Class
8. Collections Data Structure
9. Data Type
10. Database SQL JDBC
11. Design Pattern
12. Development Class
13. EJB3
14. Email
15. Event
16. File Input Output
17. Game
18. Generics
19. GWT
20. Hibernate
21. I18N
22. J2EE
23. J2ME
24. JDK 6
25. JNDI LDAP
26. JPA
27. JSP
28. JSTL
29. Language Basics
30. Network Protocol
31. PDF RTF
32. Reflection
33. Regular Expressions
34. Scripting
35. Security
36. Servlets
37. Spring
38. Swing Components
39. Swing JFC
40. SWT JFace Eclipse
41. Threads
42. Tiny Application
43. Velocity
44. Web Services SOA
45. XML
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java » XML » DOM ElementScreenshots 
DOM helper for root element
  

/**
 
 */
//org.ajax4jsf.builder.xml;

import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.io.StringWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;


import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.DocumentType;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

/**
 * This class must read XML file from input stream and can extract body of root
 * element for include into target in generation.
 
 @author shura
 
 */
public class XMLBody {
  private Document xmlDocument;

  private Element rootElement;

  /**
   * Load XML document and parse it into DOM.
   
   @param input
   @throws ParsingException
   */
  public void loadXML(InputStream inputthrows Exception {
    try {
      // Create Document Builder Factory
      DocumentBuilderFactory docFactory = DocumentBuilderFactory
          .newInstance();

      docFactory.setValidating(false);
      // Create Document Builder
      DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
      
      docBuilder.isValidating();
      
      // Disable loading of external Entityes
      docBuilder.setEntityResolver(new EntityResolver() {
        // Dummi resolver - alvays do nothing
        public InputSource resolveEntity(String publicId, String systemId)
            throws SAXException, IOException {
          return new InputSource(new StringReader(""));
        }

      });

      // open and parse XML-file
      xmlDocument = docBuilder.parse(input);

      // Get Root xmlElement
      rootElement = xmlDocument.getDocumentElement();
    catch (Exception e) {
      throw new Exception("Error load XML ", e);
    }

  }

  /**
   * Check name of root element is as expected.
   
   @param name
   @return
   */
  public boolean isRootName(String name) {
    return rootElement.getNodeName().equals(name);
  }

  public String getDoctype() {
    DocumentType doctype = xmlDocument.getDoctype();
    if (null != doctype) {
      return doctype.getName();
    }
    return null;
  }

  public String getPiblicId() {
    DocumentType doctype = xmlDocument.getDoctype();
    if (null != doctype) {
      return doctype.getPublicId();
    }
    return null;
  }

  public String getRootTypeName() {
    return rootElement.getSchemaTypeInfo().getTypeName();
  }

  public String getContent() throws Exception {
    NodeList childNodes = rootElement.getChildNodes();
    return serializeNodes(childNodes);
  }

  private String serializeNodes(NodeList childNodesthrows Exception {
    DocumentFragment fragment = xmlDocument.createDocumentFragment();
    for (int i = 0; i < childNodes.getLength(); i++) {
      fragment.appendChild(childNodes.item(i).cloneNode(true));
    }
    try {
      TransformerFactory transformerFactory = TransformerFactory
          .newInstance();
      Transformer transformer = transformerFactory.newTransformer();
      transformer.setOutputProperty("omit-xml-declaration""yes");
      StringWriter out = new StringWriter();
      StreamResult result = new StreamResult(out);
      transformer.transform(new DOMSource(fragment), result);
      return out.toString();

    catch (Exception e) {
      throw new Exception(e);
    }
  }
  
  public String getContent(String xpaththrows Exception{
    XPath path = XPathFactory.newInstance().newXPath();
    NodeList childNodes;
    try {
      childNodes = (NodeListpath.evaluate(xpath, xmlDocument,XPathConstants.NODESET);
    catch (XPathExpressionException e) {
      throw new Exception("Error evaluate xpath",e);
    }
    return serializeNodes(childNodes);
  }
}

   
    
  
Related examples in the same category
1. Add Text object to an Element.
2. Add a new element to the given parent
3. Add an entity to a specified Element.
4. Adds the child element with the given text
5. Clean text from Node
6. Compare two DOM Nodes
7. Compare two DOM Nodes from JBoss
8. Create New Element And Set
9. Create New Element And Set Attribute
10. Create a new element
11. Find All Elements By Tag Name
12. Find All Elements By Tag Name Name Space
13. Find Element And Set Or Create And Set
14. Find Element Or Container
15. Find Element Or Create And Attribute
16. Find Element Or Create And Set
17. Find Element Or Create And Set Attribute
18. Get Element Boolean Value
19. Get Element Date Value
20. Get Element Float Value
21. Get Element Int Value
22. Get Element Long Value
23. Get Element QName
24. Get Element String Value
25. Get Element Text
26. Get Elements by parent element
27. Get First Element
28. Get Next Element
29. Get child from an element by name
30. Get content from element
31. Get the content of an optional child element
32. Get the content of the given element.
33. Get the first child element
34. Get the first text node associated with this element
35. Get the next sibling element
36. Get the next sibling with the same name and type
37. Get the raw text content of a node or null if there is no text
38. Get the specified text node associated with this element
39. Get the trimed text content of a node or null if there is no text
40. Get trimmed text content of a node or null if there is no text
41. Gets the child of the specified element having the specified unique name
42. Has Attribute
43. Remove Attribute
44. DOM Util: get Element Text
45. Return a list of named Elements with a specific attribute value.
46. Return a list of named Elements.
47. Return child elements with specified name.
48. Return the first element child with the specified qualified name.
49. Return the first named Element found. Null if none.
50. Returns a list of child elements with the given name.
51. Returns an array of text values of a child element.
52. Returns an iterator over the children of the given element with the given tag name.
53. Returns text value of a child element. Returns null if there is no child element found.
54. Returns the first child element with the given name.
55. Returns the first element that has the specified local name.
56. Returns the text of the element
57. Moves the content of the given element to the given element
58. Import Elements
59. Find Container Else Create One
60. Create New Container
61. Macro to get the content of a unique child element.
62. Convert node element To String
63. Convert Element To Stream
64. Get the first element child.
65. Use the Document.getElementsByTagName() method to quickly and easily locate elements by name.
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.