请教scala 的xml语法
zestyzeng
2009-11-11
scala的xml处理功能非常强, 也容易使用,如下代码: package com.test.xml object XMLTest { val labPhoneBook = <phonebook> test </phonebook>; def main(args: Array[String]) = Console.println( labPhoneBook ) } 打印出 引用 <phonebook>
test </phonebook>; labPhoneBook 是一个 scala.xml.Elem对象。 我一直不明白, 他怎么知道 引用 <>....<> 是ELem对象, 是使用了scala中那些语法来实现, 哪位同志指导一下。谢谢。
|
|
fineqtbull
2009-11-11
<>..<>是Scala语言语法的一部分(终结符),就像{}()等符号一样。Scala语言的文法可以参看【Scala Language Specification】,里面专门有说明XML的章节。
引用 XmlExpr ::= XmlContent {Element} Element ::= EmptyElemTag | STag Content ETag EmptyElemTag ::= ‘<’ Name {S Attribute} [S] ‘/>’ STag ::= ‘<’ Name {S Attribute} [S] ‘>’ ETag ::= ‘</’ Name [S] ’>’ Content ::= [CharData] {Content1 [CharData]} Content1 ::= XmlContent | Reference | ScalaExpr XmlContent ::= Element | CDSect | PI | Comment |
|
zestyzeng
2009-11-11
多谢指教。
查了一下《scala language specification》的1.5xml部分,找到答案了, 引用 Syntax: ( whitespace | ‘(’ | ‘{’ ) ‘<’ (XNameStart | ‘!’ | ‘?’) XNameStart ::= ‘_’ | BaseChar | Ideographic (as inW3C XML, but without ‘:’ The scanner switches from XMLmode to Scalamode if either 简单的说就是 碰到 < 这个符号, 就从scala的解析转到xml的解析中。 |
|
elfer
2009-11-16
怎么感觉scala和actionscript这么像呢
|