使用编码UTF-8而不使用BOM groovy的xml
您好,我需要使用MarkupBuilder类在groovy中创建一个XML文件,该XML文件应该具有编码utf-8而不包含BOM 这是我生成markupbuilder并添加编码的代码使用编码UTF-8而不使用BOM groovy的xml,groovy,Groovy,您好,我需要使用MarkupBuilder类在groovy中创建一个XML文件,该XML文件应该具有编码utf-8而不包含BOM 这是我生成markupbuilder并添加编码的代码 def textXML = new StringWriter() def builder = new groovy.xml.MarkupBuilder(textXML) builder.setDoubleQuotes(false) builder.setOmitNullAttribu
def textXML = new StringWriter()
def builder = new groovy.xml.MarkupBuilder(textXML)
builder.setDoubleQuotes(false)
builder.setOmitNullAttributes(true)
builder.setOmitEmptyAttributes(true)
builder.mkp.xmlDeclaration(version: "1.0", encoding: "utf-8")
//some more code
此代码创建xml文件
def file = new File("fileXml.xml")
file << textXML
def file=新文件(“fileXml.xml”)
文件UTF-8 BOM(字节顺序标记)始终是文件的前三个字节。您可以简单地删除它们
我会这样做:
def textXML = new StringWriter()
def builder = new groovy.xml.MarkupBuilder(textXML)
builder.setDoubleQuotes(false)
builder.setOmitNullAttributes(true)
builder.setOmitEmptyAttributes(true)
builder.mkp.xmlDeclaration(version: "1.0", encoding: "utf-8")
def xmlbytes = textXML.toString().getBytes().flatten()
xmlbytes.remove(0)
xmlbytes.remove(0)
xmlbytes.remove(0)
def file = new File("fileXml.xml")
file << xmlbytes
def textXML=new StringWriter()
def builder=new groovy.xml.MarkupBuilder(textXML)
builder.setDoubleQuotes(false)
builder.setOmitNullAttributes(true)
builder.setommitemptyattributes(true)
builder.mkp.xml声明(版本:“1.0”,编码:“utf-8”)
def xmlbytes=textXML.toString().getBytes().flant()
xmlbytes.remove(0)
xmlbytes.remove(0)
xmlbytes.remove(0)
def file=新文件(“fileXml.xml”)
文件所以我的情况略有不同。我正在尝试使用MarkupBuilder编写XML,并显示BOM(新的客户需求)。到目前为止,我尝试的所有方法都只生成一个没有BOM表的纯文本XML文件。以下是我的示例代码:
import groovy.xml.MarkupBuilder
def writer = new StringWriter()
def xml = new MarkupBuilder( writer )
xml.setDoubleQuotes(false)
xml.setOmitNullAttributes(true)
xml.setOmitEmptyAttributes(true)
xml.mkp.xmlDeclaration(version: "1.0", encoding: "utf-8")
xml.quote() {
xml.quote_details() {
xml.detail() {
xml.quoteId('Q1339', type:'FCL')
}
}
}
new FileOutputStream('UTF_test.xml').withWriter('UTF-8') { w ->
w.write('ABC')
w << writer
}
import groovy.xml.MarkupBuilder
def writer=new StringWriter()
def xml=新的MarkupBuilder(编写器)
setDoubleQuotes(false)
setOmitNullAttributes(true)
setOmitEmptyAttributes(true)
xml.mkp.xml声明(版本:“1.0”,编码:“utf-8”)
xml.quote(){
xml.quote_details(){
xml.detail(){
quoteId('Q1339',类型:'FCL')
}
}
}
新的FileOutputStream('UTF_test.xml')。withWriter('UTF-8'){w->
w、 写('ABC')
W