Really Basic Rapture XML basic demo
| Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_45). | |
| Type in expressions to have them evaluated. | |
| Type :help for more information. | |
| scala> import rapture.xml._ | |
| import rapture.xml._ | |
| scala> import xmlBackends.stdlib._ | |
| import xmlBackends.stdlib._ | |
| scala> val x1 = xml"<foo><bar/></foo>" | |
| x1: rapture.xml.Xml = <foo><bar/></foo> | |
| scala> val x2 = xml"<foo><bar></foo>" | |
| <console>:16: error: failed to parse Xml literal: expected 'b', but found 'f' | |
| val x2 = xml"<foo><bar></foo>" | |
| ^ | |
| scala> val x2 = xml"<foo><bar/></baz>" | |
| <console>:16: error: failed to parse Xml literal: expected 'f', but found 'b' | |
| val x2 = xml"<foo><bar/></baz>" | |
| ^ | |
| scala> val x2 = xml"<foo><bar/></foo" | |
| <console>:16: error: failed to parse Xml literal: expected '>', but found end of input | |
| val x2 = xml"<foo><bar/></foo" | |
| ^ | |
| scala> val x2 = xml"""<foo att="quux"><bar/></foo>""" | |
| x2: rapture.xml.Xml = <foo att="quux"><bar/></foo> | |
| scala> x2.bar | |
| res0: rapture.xml.Xml = <bar/> | |
| scala> val x3 = xml"""<x><item id="1"/><item id="2"/><item id="3">three</item></x>""" | |
| x3: rapture.xml.Xml = <x><item id="1"/><item id="2"/><item id="3">three</item></x> | |
| scala> x3.item | |
| res1: rapture.xml.Xml = <item id="1"/><item id="2"/><item id="3">three</item> | |
| scala> x3.item(1) | |
| res2: rapture.xml.Xml = <item id="2"/> | |
| scala> x2.item(2) | |
| res4: rapture.xml.Xml = undefined | |
| scala> x3.item(2).as[String] | |
| res5: String = three | |
| scala> case class Foo(a: Int, b: String, c: Double) | |
| defined class Foo | |
| scala> Xml(Foo(1, "two", 3.0)) | |
| <console>:19: warning: method any2ArrowAssoc in trait DeprecatedPredef is deprecated: Use `ArrowAssoc` | |
| Xml(Foo(1, "two", 3.0)) | |
| ^ | |
| res6: rapture.xml.Xml = <a>1</a><b>two</b><c>3.0</c> | |
| scala> case class Bar(foo: Foo, baz: Boolean) | |
| defined class Bar | |
| scala> Xml(Bar(Foo(1, "two", 3.0), true)) | |
| <console>:21: warning: method any2ArrowAssoc in trait DeprecatedPredef is deprecated: Use `ArrowAssoc` | |
| Xml(Bar(Foo(1, "two", 3.0), true)) | |
| ^ | |
| res7: rapture.xml.Xml = <foo><a>1</a><b>two</b><c>3.0</c></foo><baz>true</baz> | |
| scala> xml"""<foo>42</foo>""" | |
| res12: rapture.xml.Xml = <foo>42</foo> | |
| scala> res12.as[Int] | |
| <console>:18: error: cannot extract type Int from rapture.xml.Xml. | |
| res12.as[Int] | |
| ^ | |
| scala> implicit val intExt = Xml.extractor[String].map(_.toInt) | |
| intExt: rapture.data.Extractor[Int,rapture.xml.Xml]{type Throws = rapture.data.DataGetException with Exception} = rapture.data.Extractor$$anon$7@4ef52ca7 | |
| scala> res12.as[Int] | |
| res15: Int = 42 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment