加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

将DOCTYPE添加到Scala XML的最简单方法?

发布时间:2020-12-16 10:01:38 所属栏目:安全 来源:网络整理
导读:如何在 Scala XML中创建这个miminal HTML5: !DOCTYPE html title / title p / p / html? 当然,在Scala中制作类似HTML的XML很简单: val html = htmltitle/titlep/p/htmlhtml: scala.xml.Elem = htmltitle/titlep/p/html 但是,如何在html标记中注入前缀的D
如何在 Scala XML中创建这个miminal HTML5:
<!DOCTYPE html>< title>< / title>< p>< / p>< / html>?

当然,在Scala中制作类似HTML的XML很简单:

> val html = <html><title></title><p></p></html>
html: scala.xml.Elem = <html><title></title><p></p></html>

但是,如何在html标记中注入前缀的DOCTYPE属性?

我试过两条路线:
使用scala.xml.Document和scala.xml.DocType,但两者似乎都基于写出文件或流,而我只是将这个XML对象保留在内存中.似乎太多的仪式.

使用Attribute,

> import scala.xml.{Null,Text,Attribute}
> val d = <html /> % Attribute(None,"!DOCTYPE",Text(""),Null)
d: scala.xml.Elem = <html !DOCTYPE=""></html>

这是接近的,但不是一个带前缀的属性和顽皮的任务.

解决方法

您可以使用XML的write方法来获取java.io.Writer而不是File.使用java.io.StringWriter是直截了当的:

val w = new java.io.StringWriter()
val html = <html><body><p>Que pasa?!</p></body></html>
xml.XML.write(w,html,"UTF-8",xmlDecl = false,doctype = 
   xml.dtd.DocType("html",xml.dtd.SystemID("about:legacy-compat"),Nil))
w.toString

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读