diff options
Diffstat (limited to 'src/library/scala/xml/NodeTraverser.scala')
-rw-r--r-- | src/library/scala/xml/NodeTraverser.scala | 30 |
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); + } + +} |