zoukankan      html  css  js  c++  java
  • Scala XML

    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 不同,不包含父节点信息

    • 层级

      file

    • 操作

      file

      // 类 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)
      
  • 相关阅读:
    为什么今天的L4无人驾驶无法到达终局(转)
    各种卷积类型Convolution
    关于快速、深入理解需求
    测试注意事项及工作标准
    测试工作指引
    测试验收工作指引
    Jmeter的json提取器使用
    高等数学:第一章 函数与极限
    vscode
    Python模块查找路径
  • 原文地址:https://www.cnblogs.com/yuanzam/p/11629320.html
Copyright © 2011-2022 走看看