Package org.dom4j.io
Class SAXModifier
java.lang.Object
org.dom4j.io.SAXModifier
The SAXModifier reads, modifies and writes XML documents using SAX.
Registered ElementModifier
objects can provide modifications to (part
of) the xml tree, while the document is still being processed. This makes it
possible to change large xml documents without having them in memory.
The modified document is written when the XMLWriter
is specified.
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new modifier.SAXModifier
(boolean pruneElements) Creates a new modifier.SAXModifier
(XMLReader xmlReader) Creates a new modifier that will the specifiedXMLReader
to parse the source.SAXModifier
(XMLReader xmlReader, boolean pruneElements) Creates a new modifier that will the specifiedXMLReader
to parse the source. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addModifier
(String path, ElementModifier modifier) Adds theElementModifier
to be called when the specified element path is encounted while parsing the source.Get theDocumentFactory
used to create the DOM4J document structureReturns the currentXMLWriter
.boolean
Returns true when xml elements are not kept in memory while parsing.modify
(InputStream source) Reads a Document from the givenInputStream
and writes it to the specifiedXMLWriter
using SAX.modify
(InputStream source, String systemId) Reads a Document from the givenInputStream
and writes it to the specifiedXMLWriter
using SAX.Reads a Document from the given URL or filename and writes it to the specifiedXMLWriter
using SAX.modify
(InputSource source) Reads a Document from the givenInputSource
and writes it to the specifiedXMLWriter
using SAX.void
removeModifier
(String path) Removes theElementModifier
from the event based processor, for the specified element path.void
Removes all registeredElementModifier
instances from the event based processor.void
setDocumentFactory
(DocumentFactory factory) Sets theDocumentFactory
used to create the DOM4J document tree.void
setXMLWriter
(XMLWriter writer) Sets theXMLWriter
used to write the modified document.
-
Constructor Details
-
SAXModifier
public SAXModifier()Creates a new modifier.
The XMLReader to parse the source will be created via the org.xml.sax.driver system property or JAXP if the system property is not set. -
SAXModifier
public SAXModifier(boolean pruneElements) Creates a new modifier.
The XMLReader to parse the source will be created via the org.xml.sax.driver system property or JAXP if the system property is not set.- Parameters:
pruneElements
- Set to true when the modified document must NOT be kept in memory.
-
SAXModifier
Creates a new modifier that will the specifiedXMLReader
to parse the source.- Parameters:
xmlReader
- The XMLReader to use
-
SAXModifier
Creates a new modifier that will the specifiedXMLReader
to parse the source.- Parameters:
xmlReader
- The XMLReader to usepruneElements
- Set to true when the modified document must NOT be kept in memory.
-
-
Method Details
-
modify
Reads a Document from the givenFile
and writes it to the specifiedXMLWriter
using SAX. Registered objects are invoked on the fly.- Parameters:
source
- is theFile
to read from.- Returns:
- the newly created Document instance
- Throws:
DocumentException
- DocumentException org.dom4j.DocumentException} if an error occurs during parsing.
-
modify
Reads a Document from the givenInputSource
and writes it to the specifiedXMLWriter
using SAX. RegisteredElementModifier
objects are invoked on the fly.- Parameters:
source
- is theorg.xml.sax.InputSource
to read from.- Returns:
- the newly created Document instance
- Throws:
DocumentException
- DocumentException org.dom4j.DocumentException} if an error occurs during parsing.
-
modify
Reads a Document from the givenInputStream
and writes it to the specifiedXMLWriter
using SAX. RegisteredElementModifier
objects are invoked on the fly.- Parameters:
source
- is thejava.io.InputStream
to read from.- Returns:
- the newly created Document instance
- Throws:
DocumentException
- DocumentException org.dom4j.DocumentException} if an error occurs during parsing.
-
modify
Reads a Document from the givenInputStream
and writes it to the specifiedXMLWriter
using SAX. RegisteredElementModifier
objects are invoked on the fly.- Parameters:
source
- is thejava.io.InputStream
to read from.systemId
- DOCUMENT ME!- Returns:
- the newly created Document instance
- Throws:
DocumentException
- DocumentException org.dom4j.DocumentException} if an error occurs during parsing.
-
modify
Reads a Document from the givenReader
and writes it to the specifiedXMLWriter
using SAX. RegisteredElementModifier
objects are invoked on the fly.- Parameters:
source
- is thejava.io.Reader
to read from.- Returns:
- the newly created Document instance
- Throws:
DocumentException
- DocumentException org.dom4j.DocumentException} if an error occurs during parsing.
-
modify
Reads a Document from the givenReader
and writes it to the specifiedXMLWriter
using SAX. RegisteredElementModifier
objects are invoked on the fly.- Parameters:
source
- is thejava.io.Reader
to read from.systemId
- DOCUMENT ME!- Returns:
- the newly created Document instance
- Throws:
DocumentException
- DocumentException org.dom4j.DocumentException} if an error occurs during parsing.
-
modify
Reads a Document from the givenURL
and writes it to the specifiedXMLWriter
using SAX. Registered objects are invoked on the fly.- Parameters:
source
- is thejava.net.URL
to read from.- Returns:
- the newly created Document instance
- Throws:
DocumentException
- DocumentException org.dom4j.DocumentException} if an error occurs during parsing.
-
modify
Reads a Document from the given URL or filename and writes it to the specifiedXMLWriter
using SAX. Registered objects are invoked on the fly.- Parameters:
source
- is the URL or filename to read from.- Returns:
- the newly created Document instance
- Throws:
DocumentException
- DocumentException org.dom4j.DocumentException} if an error occurs during parsing.
-
addModifier
Adds theElementModifier
to be called when the specified element path is encounted while parsing the source.- Parameters:
path
- The element path to be handledmodifier
- TheElementModifier
to be called by the event based processor.
-
resetModifiers
public void resetModifiers()Removes all registeredElementModifier
instances from the event based processor. -
removeModifier
Removes theElementModifier
from the event based processor, for the specified element path.- Parameters:
path
- The path to remove theElementModifier
for.
-
getDocumentFactory
Get theDocumentFactory
used to create the DOM4J document structure- Returns:
DocumentFactory
that will be used
-
setDocumentFactory
Sets theDocumentFactory
used to create the DOM4J document tree.- Parameters:
factory
-DocumentFactory
to be used
-
getXMLWriter
Returns the currentXMLWriter
.- Returns:
- XMLWriter
-
setXMLWriter
Sets theXMLWriter
used to write the modified document.- Parameters:
writer
- The writer to use.
-
isPruneElements
public boolean isPruneElements()Returns true when xml elements are not kept in memory while parsing. TheDocument
returned by the modify methods will be null.- Returns:
- Returns the pruneElements.
-