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中的Node與DOM不同,不包含父節點資訊 -
層級

-
操作

// 類 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=https://www.cnblogs.com/yuanzam/p/"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=https://www.cnblogs.com/yuanzam/p/{makeURL(fileName)}/> // 注意不需要雙引號 // 非常規型別 val js = <script></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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/1983.html
標籤:Scala
下一篇:Scala Future
