Instance Constructors
-
new
DocumentParserUsingDom(docBuilderFactory: DocumentBuilderFactory, docBuilderCreator: (DocumentBuilderFactory) ⇒ DocumentBuilder)
Value Members
-
final
def
!=(arg0: AnyRef): Boolean
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: AnyRef): Boolean
-
final
def
==(arg0: Any): Boolean
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
val
docBuilderCreator: (DocumentBuilderFactory) ⇒ DocumentBuilder
-
val
docBuilderFactory: DocumentBuilderFactory
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
finalize(): Unit
-
final
def
getClass(): java.lang.Class[_]
-
def
hashCode(): Int
-
final
def
isInstanceOf[T0]: Boolean
-
final
def
ne(arg0: AnyRef): Boolean
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
def
parse(inputStream: InputStream): Document
-
final
def
parse(file: File): Document
-
final
def
parse(uri: URI): Document
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Inherited from AnyRef
Inherited from Any
DOM-based
Document
parser.Typical non-trivial creation is as follows, assuming class
MyEntityResolver
, which extendsEntityResolver
, and classMyErrorHandler
, which extendsErrorHandler
:If we want the
DocumentBuilderFactory
to be a validating one, using an XML Schema, we could obtain theDocumentBuilderFactory
as follows:A custom
EntityResolver
could be used to retrieve DTDs locally, or even to suppress DTD resolution. The latter can be coded as follows (see http://stuartsierra.com/2008/05/08/stop-your-java-sax-parser-from-downloading-dtds), risking some loss of information:For completeness, a custom
ErrorHandler
class that simply prints parse exceptions to standard output:If more flexibility is needed in configuring the
DocumentParser
than offered by this class, consider writing a wrapperDocumentParser
which wraps aDocumentParserUsingDom
, but adapts theparse
method. This would make it possible to adapt the conversion from a DOMDocument
to yaidomDocument
, for example.A
DocumentParserUsingDom
instance can be re-used multiple times, from the same thread. If theDocumentBuilderFactory
is thread-safe, it can even be re-used from multiple threads. Typically aDocumentBuilderFactory
cannot be trusted to be thread-safe, however. In a web application, one (safe) way to deal with that is to use oneDocumentBuilderFactory
instance per request.