Package weka.core.xml

Class XMLDocument

java.lang.Object
weka.core.xml.XMLDocument
All Implemented Interfaces:
RevisionHandler
Direct Known Subclasses:
XMLInstances

public class XMLDocument extends Object implements RevisionHandler
This class offers some methods for generating, reading and writing XML documents.
It can only handle UTF-8.
Version:
$Revision: 8034 $
Author:
FracPete (fracpete at waikato dot ac dot nz)
See Also:
  • Field Details

  • Constructor Details

    • XMLDocument

      public XMLDocument() throws Exception
      initializes the factory with non-validating parser.
      Throws:
      Exception - if the construction fails
    • XMLDocument

      public XMLDocument(String xml) throws Exception
      Creates a new instance of XMLDocument.
      Parameters:
      xml - the xml to parse (if "<?xml" is not found then it is considered a file)
      Throws:
      Exception - if the construction of the DocumentBuilder fails
      See Also:
    • XMLDocument

      public XMLDocument(File file) throws Exception
      Creates a new instance of XMLDocument.
      Parameters:
      file - the XML file to parse
      Throws:
      Exception - if the construction of the DocumentBuilder fails
      See Also:
    • XMLDocument

      public XMLDocument(InputStream stream) throws Exception
      Creates a new instance of XMLDocument.
      Parameters:
      stream - the XML stream to parse
      Throws:
      Exception - if the construction of the DocumentBuilder fails
      See Also:
    • XMLDocument

      public XMLDocument(Reader reader) throws Exception
      Creates a new instance of XMLDocument.
      Parameters:
      reader - the XML reader to parse
      Throws:
      Exception - if the construction of the DocumentBuilder fails
      See Also:
  • Method Details

    • getFactory

      public DocumentBuilderFactory getFactory()
      returns the DocumentBuilderFactory.
      Returns:
      the DocumentBuilderFactory
    • getBuilder

      public DocumentBuilder getBuilder()
      returns the DocumentBuilder.
      Returns:
      the DocumentBuilder
    • getValidating

      public boolean getValidating()
      returns whether a validating parser is used.
      Returns:
      whether a validating parser is used
    • setValidating

      public void setValidating(boolean validating) throws Exception
      sets whether to use a validating parser or not.
      Note: this does clear the current DOM document!
      Parameters:
      validating - whether to use a validating parser
      Throws:
      Exception - if the instantiating of the DocumentBuilder fails
    • getDocument

      public Document getDocument()
      returns the parsed DOM document.
      Returns:
      the parsed DOM document
    • setDocument

      public void setDocument(Document newDocument)
      sets the DOM document to use.
      Parameters:
      newDocument - the DOM document to use
    • setDocType

      public void setDocType(String docType)
      sets the DOCTYPE-String to use in the XML output. Performs NO checking! if it is null the DOCTYPE is omitted.
      Parameters:
      docType - the DOCTYPE definition to use in XML output
    • getDocType

      public String getDocType()
      returns the current DOCTYPE, can be null.
      Returns:
      the current DOCTYPE definition, can be null
    • setRootNode

      public void setRootNode(String rootNode)
      sets the root node to use in the XML output. Performs NO checking with DOCTYPE!
      Parameters:
      rootNode - the root node to use in the XML output
    • getRootNode

      public String getRootNode()
      returns the current root node.
      Returns:
      the current root node
    • clear

      public void clear()
      sets up an empty DOM document, with the current DOCTYPE and root node.
      See Also:
    • newDocument

      public Document newDocument(String docType, String rootNode)
      creates a new Document with the given information.
      Parameters:
      docType - the DOCTYPE definition (no checking happens!), can be null
      rootNode - the name of the root node (must correspond to the one given in docType)
      Returns:
      returns the just created DOM document for convenience
    • read

      public Document read(String xml) throws Exception
      parses the given XML string (can be XML or a filename) and returns a DOM Document.
      Parameters:
      xml - the xml to parse (if "<?xml" is not found then it is considered a file)
      Returns:
      the parsed DOM document
      Throws:
      Exception - if something goes wrong with the parsing
    • read

      public Document read(File file) throws Exception
      parses the given file and returns a DOM document.
      Parameters:
      file - the XML file to parse
      Returns:
      the parsed DOM document
      Throws:
      Exception - if something goes wrong with the parsing
    • read

      public Document read(InputStream stream) throws Exception
      parses the given stream and returns a DOM document.
      Parameters:
      stream - the XML stream to parse
      Returns:
      the parsed DOM document
      Throws:
      Exception - if something goes wrong with the parsing
    • read

      public Document read(Reader reader) throws Exception
      parses the given reader and returns a DOM document.
      Parameters:
      reader - the XML reader to parse
      Returns:
      the parsed DOM document
      Throws:
      Exception - if something goes wrong with the parsing
    • write

      public void write(String file) throws Exception
      writes the current DOM document into the given file.
      Parameters:
      file - the filename to write to
      Throws:
      Exception - if something goes wrong with the parsing
    • write

      public void write(File file) throws Exception
      writes the current DOM document into the given file.
      Parameters:
      file - the filename to write to
      Throws:
      Exception - if something goes wrong with the parsing
    • write

      public void write(OutputStream stream) throws Exception
      writes the current DOM document into the given stream.
      Parameters:
      stream - the filename to write to
      Throws:
      Exception - if something goes wrong with the parsing
    • write

      public void write(Writer writer) throws Exception
      writes the current DOM document into the given writer.
      Parameters:
      writer - the filename to write to
      Throws:
      Exception - if something goes wrong with the parsing
    • getChildTags

      public static Vector<Element> getChildTags(Node parent)
      returns all non tag-children from the given node.
      Parameters:
      parent - the node to get the children from
      Returns:
      a vector containing all the non-text children
    • getChildTags

      public static Vector<Element> getChildTags(Node parent, String name)
      returns all non tag-children from the given node.
      Parameters:
      parent - the node to get the children from
      name - the name of the tags to return, "" for all
      Returns:
      a vector containing all the non-text children
    • findNodes

      public NodeList findNodes(String xpath)
      Returns the nodes that the given xpath expression will find in the document. Can return null if an error occurred.
      Parameters:
      xpath - the XPath expression to run on the document
      Returns:
      the nodelist
    • getNode

      public Node getNode(String xpath)
      Returns the node represented by the XPath expression. Can return null if an error occurred.
      Parameters:
      xpath - the XPath expression to run on the document
      Returns:
      the node
    • evalBoolean

      public Boolean evalBoolean(String xpath)
      Evaluates and returns the boolean result of the XPath expression.
      Parameters:
      xpath - the expression to evaluate
      Returns:
      the result of the evaluation, null in case of an error
    • evalDouble

      public Double evalDouble(String xpath)
      Evaluates and returns the double result of the XPath expression.
      Parameters:
      xpath - the expression to evaluate
      Returns:
      the result of the evaluation, null in case of an error
    • evalString

      public String evalString(String xpath)
      Evaluates and returns the boolean result of the XPath expression.
      Parameters:
      xpath - the expression to evaluate
      Returns:
      the result of the evaluation
    • getContent

      public static String getContent(Element node)
      returns the text between the opening and closing tag of a node (performs a trim() on the result).
      Parameters:
      node - the node to get the text from
      Returns:
      the content of the given node
    • print

      public void print()
      prints the current DOM document to standard out.
    • toString

      public String toString()
      returns the current DOM document as XML-string.
      Overrides:
      toString in class Object
      Returns:
      the document as XML-string representation
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Returns:
      the revision
    • main

      public static void main(String[] args) throws Exception
      for testing only. takes the name of an XML file as first arg, reads that file, prints it to stdout and if a second filename is given, writes the parsed document to that again.
      Parameters:
      args - the commandline arguments
      Throws:
      Exception - if something goes wrong