summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2007-06-29 09:23:10 +0000
committerBurak Emir <emir@epfl.ch>2007-06-29 09:23:10 +0000
commit2836a47041739dddb5fe96f1351f6b7a31ae3c48 (patch)
tree4c3dd7107331932bf0386e0837b74c8d589d68af
parenteea125fb1d82edc9a1d50125c65345958c50f5d8 (diff)
downloadscala-2836a47041739dddb5fe96f1351f6b7a31ae3c48.tar.gz
scala-2836a47041739dddb5fe96f1351f6b7a31ae3c48.tar.bz2
scala-2836a47041739dddb5fe96f1351f6b7a31ae3c48.zip
xml parsing deal with processing instructions (...
xml parsing deal with processing instructions (library patch by RJ)
-rw-r--r--src/library/scala/xml/parsing/FactoryAdapter.scala11
-rw-r--r--src/library/scala/xml/parsing/NoBindingFactoryAdapter.scala5
2 files changed, 16 insertions, 0 deletions
diff --git a/src/library/scala/xml/parsing/FactoryAdapter.scala b/src/library/scala/xml/parsing/FactoryAdapter.scala
index 733a2e0aa8..2ca0527a6b 100644
--- a/src/library/scala/xml/parsing/FactoryAdapter.scala
+++ b/src/library/scala/xml/parsing/FactoryAdapter.scala
@@ -64,6 +64,10 @@ abstract class FactoryAdapter extends DefaultHandler() {
*/
def createText(text: String): Text // abstract
+ /** creates a new processing instruction node.
+ */
+ def createProcInstr(target: String, data: String): Seq[ProcInstr]
+
//
// ContentHandler methods
//
@@ -207,6 +211,13 @@ abstract class FactoryAdapter extends DefaultHandler() {
else false
} // endElement(String,String,String)
+ /** Processing instruction.
+ */
+ override def processingInstruction(target: String, data: String) {
+ for (pi <- createProcInstr(target, data))
+ hStack.push(pi)
+ }
+
//
// ErrorHandler methods
//
diff --git a/src/library/scala/xml/parsing/NoBindingFactoryAdapter.scala b/src/library/scala/xml/parsing/NoBindingFactoryAdapter.scala
index b3b17d6909..be71e55fef 100644
--- a/src/library/scala/xml/parsing/NoBindingFactoryAdapter.scala
+++ b/src/library/scala/xml/parsing/NoBindingFactoryAdapter.scala
@@ -49,6 +49,11 @@ class NoBindingFactoryAdapter extends FactoryAdapter with NodeFactory[Elem] {
def createText( text:String ) =
Text( text );
+ /** create a processing instruction
+ */
+ def createProcInstr(target: String, data: String) =
+ makeProcInstr(target, data)
+
/** loads an XML document, returning a Symbol node.
*/
override def loadXML( source:InputSource ):Elem =