summaryrefslogtreecommitdiff
path: root/src/library/scala/xml/NodeTraverser.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/scala/xml/NodeTraverser.scala')
-rw-r--r--src/library/scala/xml/NodeTraverser.scala30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/library/scala/xml/NodeTraverser.scala b/src/library/scala/xml/NodeTraverser.scala
new file mode 100644
index 0000000000..690c85534d
--- /dev/null
+++ b/src/library/scala/xml/NodeTraverser.scala
@@ -0,0 +1,30 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2003-2005, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+package scala.xml;
+
+import parsing.MarkupHandler;
+
+trait NodeTraverser extends MarkupHandler {
+
+ def traverse(n: Node): Unit = n match {
+ case x:ProcInstr => procInstr(0, x.target, x.text)
+ case x:Comment => comment(0, x.text)
+ case x:Text => text(0, x.data)
+ case x:EntityRef => entityRef(0, x.entityName)
+ case _ =>
+ elemStart(0, n.prefix, n.label, n.attributes, n.scope);
+ for (val m <- n.child)
+ traverse(m);
+ elem(0, n.prefix, n.label, n.attributes, n.scope, NodeSeq.fromSeq(n.child));
+ elemEnd(0, n.prefix, n.label);
+ }
+
+}