[英]How do I add !DOCTYPE to my html with groovy
我想使用groovy將以下DOCTYPE添加到我的html電子郵件中。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
我的groovycode是這樣開始的:
def responseDoc = job.addDocument("ECommerce_test.html"){out ->
def xmlWriter = new OutputStreamWriter(out)
MarkupBuilder html = new MarkupBuilder(xmlWriter)
我試圖使用MarkupBuilderHelper,但我不希望xml聲明。 這是我與MarkupBuilderHelper一起使用的代碼,如果沒有聲明,它似乎無法工作。
def helper = new groovy.xml.MarkupBuilderHelper(xml)
helper.xmlDeclaration([version:'1.0', encoding:'UTF-8', standalone:'no'])
helper.yieldUnescaped """<!DOCTYPE note SYSTEM "note.dtd">"""
/泰蕾茲
StreamingMarkupBuilder這樣的東西嗎?
import groovy.xml.*
def responseDoc = job.addDocument("ECommerce_test.html"){out ->
out << new StreamingMarkupBuilder().bind {
mkp.yieldUnescaped '<?xml version="1.0", encoding="UTF-8", standalone="no"?>\n'
mkp.yieldUnescaped '<!DOCTYPE note SYSTEM "note.dtd">\n'
html {
body {
h1('WOW!')
}
}
}
}
一個替代方案:
import groovy.xml.*
job.addDocument("ECommerce_test.html"){out ->
new StringWriter().with { sw ->
new MarkupBuilder(sw).html {
body {
h1('WOW!')
}
}
out << '<!DOCTYPE note SYSTEM "note.dtd">\n' << sw.toString()
}
}
它看起來確實像個錯誤。 yieldUnescaped
在閉包內(在標記內)或在xml聲明之后工作,但不適用於生成第一個頂級語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.