经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Scala » 查看文章
Scala XML
来源:cnblogs  作者:afewnotes  时间:2019/10/8 9:28:39  对本文有异议

XML

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

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

    file

  • 操作

    file

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

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

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

    只能使用单个 Node 进行匹配

  • 加载、保存文件

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

原文链接:http://www.cnblogs.com/yuanzam/p/11629320.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号