diff options
Diffstat (limited to 'docs/examples/xml/phonebook/phonebook.scala')
-rw-r--r-- | docs/examples/xml/phonebook/phonebook.scala | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/docs/examples/xml/phonebook/phonebook.scala b/docs/examples/xml/phonebook/phonebook.scala new file mode 100644 index 0000000000..4813c2d20d --- /dev/null +++ b/docs/examples/xml/phonebook/phonebook.scala @@ -0,0 +1,38 @@ +package phonebook ; + +object phonebook { + + val labPhoneBook = + <phonebook> + <descr> + This is the <b>phonebook</b> of the + <a href="http://acme.org">ACME</a> corporation. + </descr> + <entry> + <name>Burak</name> + <phone where="work"> +41 21 693 68 67</phone> + <phone where="mobile">+41 79 602 23 23</phone> + </entry> + </phonebook>; + + Console.println( labPhoneBook ); + + // XML is immutable - adding an element + + import scala.xml.{ Node, Text }; + + def add( phonebook:Node, newEntry:Node ):Node = phonebook match { + case <phonebook>{ ch @ _* }</phonebook> => + <phonebook>{ ch }{ newEntry }</phonebook> + } + + val pb2 = + add( labPhoneBook, + <entry> + <name>Kim</name> + <phone where="work"> +41 21 111 11 11</phone> + </entry> ); + + def main(args:Array[String]) = Console.println( pb2 ); + +} |