scala中定义xml
- scala对xml有很好的支持,可以直接在scalal代码定义一个xml文档
val books=<books><book>my first scala book</book></books>
//此时doc的类型是scala.xml.NodeElem,也就是一个XML元素
- scala中还可以定义多个同级别的xml元素
val books=<book>葵花宝典</book><book>辟邪剑谱</book>
//此时的doc的类型是scala.xml.NodeSeq,也就是xml的节点序列
XML节点类型
- Node类是所有XML节点的父类型,两个重要的字类型是Text和Elem
- Elem表示一个XML元素,也就是一个XML节点,scala.xml.Elem类型的label属性,返回的是标签名,child属性,返回的是子元素
- scala.xml.NodeSeq类型,是一个元素序列,可以用for循环,直接遍历它
- 可以用scala.xml.NodeBuffer类型,来手动创建一个节点序列
val booksBuffer=new scala.xml.NodeBuffer
booksBuffer += <book>booka</book>
booksBuffer += <book>bookb</book>
booksBuffer += <book>bookc</book>
val books:scala.xml.NodeSeq=booksBuffer
XML 元素的属性
- scala.xml.Elem.attributes属性,可以返回这儿xml元素的属性,是Seq[scala.xml.Node]类型的,继续调用text属性,可以拿到属性的值
val book=<book id="1" price="10">红楼梦</book>
val bookId=book.attributed("id").test
- 遍历属性
for(attr <- book.attributes)println(attr)
- 获取属性Map
book.attributes.asAttrMap("price")