XML

  • 直接在代码中使用 XML 字面量

    val doc: Elem = <html><head><title>Test</title></head><body>test</body></html>
    val items: NodeBuffer = <li>item1</li><li>item2</li><li>item1</li><li>item2</li>
  • Scala 中的 NodeDOM 不同,不包含父节点信息

  • 层级

  • 操作

    // 类 XPath
    val list = <dl><dt>Java</dt><dd>Gosling</dd><dt>Scala</dt><dd>Odersky</dd></dl>
    val languages = list \ "dt" // 修改元素
    val list = <ul><li>Fred</li><li>Wilma</li></ul>
    val list2 = list.copy(label = "ol")
    // 增加子元素
    list.copy(child = list.child ++ <li>Another item</li>)
    // 增加属性
    val image = <img src="hamster.jpg"/>
    val image2 = image % Attribute(null, "alt", "An image of a hamster", Null)
  • 内嵌表达式,在XML中直接写 Scala 代码块

    <ul><li>{items(0)}</li><li>{items(1)}</li></ul>
    <ul>{for (i <- items) yield <li>{i}</li>}</ul>
    <img src={makeURL(fileName)}/> // 注意不需要双引号
    // 非常规类型
    val js = <script><![CDATA[if (temp < 0) alert("Cold!")]]></script>
  • 模式匹配

    case <li>{Text(item)}</li> => item
    case <li>{children @ _*}</li> => for (c <- children) yield c

    只能使用单个 Node 进行匹配

  • 加载、保存文件

    import scala.xml.XML
    val root = XML.loadFile("myfile.xml")
    val root2 = XML.load(new FileInputStream("myfile.xml"))
    val root3 = XML.load(new InputStreamReader(
    new FileInputStream("myfile.xml"), "UTF-8"))
    val root4 = XML.load(new URL("http://horstmann.com/index.html")) XML.save("myfile.xml", root)

最新文章

  1. Android(Intent 学习)
  2. mybatis多表连接在一起查询
  3. flask 使用 SQLAlchemy 的两种方式
  4. Xcode6中添加pch全局引用文件
  5. Swift游戏实战-跑酷熊猫 00 游戏预览
  6. IOS做一个简单计算器
  7. 将NavigationBar设置透明
  8. 使用【百度云推送】第三方SDK实现推送功能具体解释
  9. 对比Windows 8模拟器(Simulator)和Windows Phone仿真器(Emulator)
  10. CODEFORCES ROUND #273 DIV2
  11. java基础知识4--数组的常用方法(Array)
  12. 基于LoadRunner11,以wifi热点方式录制APP脚本简单指导
  13. 小项目一---Python日志分析
  14. resources中添加配置文件
  15. vue $mount 和 el的区别
  16. String str = new String("xyz") 会创建几个对象
  17. Java程序员必会英语单词
  18. ElasicSearch(1)
  19. HDU6216
  20. VS2013 单元测试

热门文章

  1. 体验SpringCloud Gateway
  2. Monad 在实际开发中的应用
  3. TK可视化之文件内容查找
  4. 2019NC#1
  5. gym/102059 E
  6. 2019 Multi-University Training Contest 9
  7. POJ-1325 Machine Schedule 二分图匹配 最小点覆盖问题
  8. poj 2649 Factovisors 对n!进行因数分解
  9. 你知道@RequestMapping的name属性有什么用吗?【享学Spring MVC】
  10. odoo12从零开始:一、安装odoo运行环境(windows10)