public class XMLElement
extends java.lang.Object
XMLElement xml = new XMLElement();
FileReader reader = new FileReader("filename.xml");
xml.parseFromReader(reader);
enumerateAttributeNames.
 The attribute values can be retrieved using the method
 getAttribute.
 The following example shows how to list the attributes of an element:
 XMLElement element = ...;
Enumeration enum = element.enumerateAttributeNames();
while (enum.hasMoreElements()) {
    String key = (String) enum.nextElement();
    String value = (String) element.getAttribute(key);
    System.out.println(key + " = " + value);
}enumerateChildren.
 The number of child elements can be retrieved using
 countChildren.
 <title>The Title</title>getContent.
 createAnotherElement
 which has to return a new copy of the receiver.
 XMLParseException| Modifier | Constructor and Description | 
|---|---|
|   | XMLElement()Creates and initializes a new XML element. | 
| protected  | XMLElement(java.util.Map<java.lang.String,char[]> entities,
          boolean skipLeadingWhitespace,
          boolean fillBasicConversionTable,
          boolean ignoreCase)Creates and initializes a new XML element. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addChild(XMLElement child)Adds a child element. | 
| protected boolean | checkCDATA(java.lang.StringBuffer buf)Scans a special tag and if the tag is a CDATA section, append its
 content to  buf. | 
| protected boolean | checkLiteral(java.lang.String literal)Scans the data for literal text. | 
| int | countChildren() | 
| protected XMLElement | createAnotherElement()Creates a new similar XML element. | 
| java.util.Enumeration<java.lang.String> | enumerateAttributeNames() | 
| java.util.Enumeration<XMLElement> | enumerateChildren() | 
| protected XMLParseException | expectedInput(java.lang.String charSet)Creates a parse exception for when the next character read is not
 the character that was expected. | 
| protected XMLParseException | expectedInput(java.lang.String charSet,
             char ch)Creates a parse exception for when the next character read is not
 the character that was expected. | 
| java.lang.Object | getAttribute(java.lang.String name) | 
| java.lang.String | getContent() | 
| int | getLineNr() | 
| java.lang.String | getName()Returns the name of the element. | 
| protected XMLParseException | invalidValue(java.lang.String name,
            java.lang.String value)Creates a parse exception for when an invalid value is given to a
 method. | 
| protected XMLParseException | invalidValueSet(java.lang.String name)Creates a parse exception for when an invalid valueset is given to
 a method. | 
| boolean | isBOM() | 
| void | parseFromReader(java.io.Reader reader)Reads one XML element from a  Readerand parses it. | 
| void | parseFromReader(java.io.Reader reader,
               int startingLineNr)Reads one XML element from a java.io.Reader and parses it. | 
| protected char | readChar()Reads a character from a reader. | 
| protected void | resolveEntity(java.lang.StringBuffer buf)Resolves an entity. | 
| void | sanitizeInput(java.io.Reader isr,
             java.io.OutputStream pout)Reads an xml file and removes the comments, leaving only relevant
 xml code. | 
| protected void | scanElement(XMLElement elt)Scans an XML element. | 
| protected void | scanIdentifier(java.lang.StringBuffer result)Scans an identifier from the current reader. | 
| protected void | scanPCData(java.lang.StringBuffer data)Scans a  #PCDATAelement. | 
| protected void | scanString(java.lang.StringBuffer string)This method scans a delimited string from the current reader. | 
| protected char | scanWhitespace(java.lang.StringBuffer result)This method scans an identifier from the current reader. | 
| void | setAttribute(java.lang.String name,
            java.lang.Object value)Adds or modifies an attribute. | 
| void | setContent(java.lang.String content)Changes the content string. | 
| void | setName(java.lang.String name)Changes the name of the element. | 
| protected void | skipComment()Skips a comment. | 
| protected void | skipSpecialTag(int bracketLevel)Skips a special tag or comment. | 
| protected XMLParseException | syntaxError(java.lang.String context)Creates a parse exception for when a syntax error occured. | 
| protected XMLParseException | unexpectedEndOfData()Creates a parse exception for when the end of the data input has been
 reached. | 
| protected XMLParseException | unknownEntity(java.lang.String name)Creates a parse exception for when an entity could not be resolved. | 
| protected void | unreadChar(char ch)Pushes a character back to the read-back buffer. | 
public XMLElement()
Calling the construction is equivalent to:
new XMLElement(new HashMap(), false, true)protected XMLElement(java.util.Map<java.lang.String,char[]> entities,
          boolean skipLeadingWhitespace,
          boolean fillBasicConversionTable,
          boolean ignoreCase)
 This constructor should only be called from
 createAnotherElement() to create child elements.
entities - The entity conversion table.skipLeadingWhitespace - true if leading and trailing whitespace in PCDATA
     content has to be removed.fillBasicConversionTable - true if the basic entities need to be added to
     the entity list (client code calling this constructor).ignoreCase - true if the case of element and attribute names have
     to be ignored.
 entities != nullfillBasicConversionTable == false
         then entities contains at least the following
         entries: amp, lt, gt, apos and
         quotpublic void addChild(XMLElement child)
child - The child element to add.
 child != nullchild.getName() != nullchild does not have a parent elementpublic void setAttribute(java.lang.String name,
                java.lang.Object value)
name - The name of the attribute.value - The value of the attribute.
 name != nullname is a valid XML identifiervalue != nullpublic int countChildren()
result >= 0public java.util.Enumeration<java.lang.String> enumerateAttributeNames()
result != nullpublic java.util.Enumeration<XMLElement> enumerateChildren()
result != nullpublic java.lang.String getContent()
null is returned.public int getLineNr()
0 there is no associated source data.
 result >= 0public java.lang.Object getAttribute(java.lang.String name)
name - The name of the attribute.
 name != nullname is a valid XML identifier
 If the attribute doesn't exist, null is returned.
public java.lang.String getName()
XMLElement object's namepublic void parseFromReader(java.io.Reader reader)
                     throws java.io.IOException,
                            XMLParseException
Reader and parses it.reader - The reader from which to retrieve the XML data.
 reader != nullreader is not closed'>' character of the XML elementjava.io.IOException - If an error occured while reading the input.XMLParseException - If an error occured while parsing the read data.public void parseFromReader(java.io.Reader reader,
                   int startingLineNr)
                     throws java.io.IOException,
                            XMLParseException
reader - The reader from which to retrieve the XML data.startingLineNr - The line number of the first line in the data.
 reader != nullreader is not closed'>' character of the XML elementjava.io.IOException - If an error occured while reading the input.XMLParseException - If an error occured while parsing the read data.protected XMLElement createAnotherElement()
You should override this method when subclassing XMLElement.
public void setContent(java.lang.String content)
content - The new content string.public void setName(java.lang.String name)
name - The new name.
 name != nullname is a valid XML identifierprotected void scanIdentifier(java.lang.StringBuffer result)
                       throws java.io.IOException
result.result - The buffer in which the scanned identifier will be put.
 result != nulljava.io.IOException - if something goes wrongprotected char scanWhitespace(java.lang.StringBuffer result)
                       throws java.io.IOException
 The scanned whitespace is appended to result.
result - where to append scanned textresult != nulljava.io.IOException - if something goes wrongprotected void scanString(java.lang.StringBuffer string)
                   throws java.io.IOException
 The scanned string without delimiters is appended to string.
 
string != nullstring - where to append the resultjava.io.IOException - if something goes wrongprotected void scanPCData(java.lang.StringBuffer data)
                   throws java.io.IOException
#PCDATA element. CDATA sections and entities are
 resolved.
 The next < char is skipped.
 The scanned data is appended to data.
 
data != nulldata - where to append datajava.io.IOException - if something goes wrongprotected boolean checkCDATA(java.lang.StringBuffer buf)
                      throws java.io.IOException
buf.
 buf != nullbuf - buffer where to append datajava.io.IOException - if something goes wrongprotected void skipComment()
                    throws java.io.IOException
java.io.IOException - if something goes wrongprotected void skipSpecialTag(int bracketLevel)
                       throws java.io.IOException
bracketLevel - The number of open square brackets ([) that have
                     already been read.
 bracketLevel >= 0java.io.IOException - if something goes wrongprotected boolean checkLiteral(java.lang.String literal)
                        throws java.io.IOException
Scanning stops when a character does not match or after the complete text has been checked, whichever comes first.
literal - the literal to check.
 literal != nulljava.io.IOException - if something goes wrongprotected char readChar()
                 throws java.io.IOException
java.io.IOException - if something goes wrongprotected void scanElement(XMLElement elt) throws java.io.IOException
elt - The element that will contain the result.
 elt != nulljava.io.IOException - if something goes wrongprotected void resolveEntity(java.lang.StringBuffer buf)
                      throws java.io.IOException
 The value of the entity is appended to buf.
buf - Where to put the entity value.
 buf != nulljava.io.IOException - if something goes wrongprotected void unreadChar(char ch)
ch - The character to push back.
 ch != '\0'protected XMLParseException invalidValueSet(java.lang.String name)
name - The name of the entity.
 name != nullprotected XMLParseException invalidValue(java.lang.String name, java.lang.String value)
name - The name of the entity.value - The value of the entity.
 name != nullvalue != nullprotected XMLParseException unexpectedEndOfData()
protected XMLParseException syntaxError(java.lang.String context)
context - The context in which the error occured.
 context != nullcontext.length() > 0protected XMLParseException expectedInput(java.lang.String charSet)
charSet - The set of characters (in human readable form) that was
                expected.
 charSet != nullcharSet.length() > 0protected XMLParseException expectedInput(java.lang.String charSet, char ch)
charSet - The set of characters (in human readable form) that was
                expected.ch - The character that was received instead.
 charSet != nullcharSet.length() > 0protected XMLParseException unknownEntity(java.lang.String name)
name - The name of the entity.name != nullname.length() > 0public void sanitizeInput(java.io.Reader isr,
                 java.io.OutputStream pout)
isr - The reader of the InputStream containing the xml.pout - The PipedOutputStream that will be receiving the
             filtered xml file.public boolean isBOM()