scala.xml

pull

package pull

Classes needed to view an XML document as a series of events. The document is parsed by an XMLEventReader instance. You can treat it as an Iterator to retrieve the events, which are all subclasses of XMLEvent.

scala> val source = Source.fromString("""<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?instruction custom value="customvalue"?>
<!DOCTYPE foo [
  <!ENTITY bar "BAR">
]><foo>Hello<bar>&bar;</bar><bar>&gt;</bar></foo>""")

source: scala.io.Source = non-empty iterator

scala> val reader = new XMLEventReader(source)
reader: scala.xml.pull.XMLEventReader = non-empty iterator

scala> reader.foreach{ println(_) }
EvProcInstr(instruction,custom value="customvalue")
EvText(
)
EvElemStart(null,foo,,)
EvText(Hello)
EvComment( this is a comment )
EvElemStart(null,bar,,)
EvText(BAR)
EvElemEnd(null,bar)
EvElemStart(null,bar,,)
EvEntityRef(gt)
EvElemEnd(null,bar)
EvElemEnd(null,foo)
EvText(

)

Classes needed to view an XML document as a series of events. The document is parsed by an XMLEventReader instance. You can treat it as an Iterator to retrieve the events, which are all subclasses of XMLEvent.

scala> val source = Source.fromString("""<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?instruction custom value="customvalue"?>
<!DOCTYPE foo [
  <!ENTITY bar "BAR">
]><foo>Hello<bar>&bar;</bar><bar>&gt;</bar></foo>""")

source: scala.io.Source = non-empty iterator

scala> val reader = new XMLEventReader(source)
reader: scala.xml.pull.XMLEventReader = non-empty iterator

scala> reader.foreach{ println(_) }
EvProcInstr(instruction,custom value="customvalue")
EvText(
)
EvElemStart(null,foo,,)
EvText(Hello)
EvComment( this is a comment )
EvElemStart(null,bar,,)
EvText(BAR)
EvElemEnd(null,bar)
EvElemStart(null,bar,,)
EvEntityRef(gt)
EvElemEnd(null,bar)
EvElemEnd(null,foo)
EvText(

)

Visibility
  1. Public
  2. All
Impl.
  1. Concrete
  2. Abstract

Type Members

  1. case class EvComment ( text : String ) extends XMLEvent with Product with Serializable

    A comment was encountered

  2. case class EvElemEnd ( pre : String , label : String ) extends XMLEvent with Product with Serializable

    An Element's end tag was encountered.

  3. case class EvElemStart ( pre : String , label : String , attrs : MetaData , scope : NamespaceBinding ) extends XMLEvent with Product with Serializable

    An Element's start tag was encountered.

  4. case class EvEntityRef ( entity : String ) extends XMLEvent with Product with Serializable

    An entity reference was encountered.

  5. case class EvProcInstr ( target : String , text : String ) extends XMLEvent with Product with Serializable

    A processing instruction was encountered.

  6. case class EvText ( text : String ) extends XMLEvent with Product with Serializable

    A text node was encountered.

  7. trait ProducerConsumerIterator [T >: Null] extends Iterator[T]

  8. trait XMLEvent extends AnyRef

    An XML event for pull parsing.

  9. class XMLEventReader extends ProducerConsumerIterator[XMLEvent]

    Main entry point into creating an event-based XML parser.