StringWriter writer = new StringWriter();
XmlSerializer serializer = new KXmlSerializer();
serializer.setOutput(writer);
serializer.startDocument(null, null);
serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
// Creating XML
serializer.endDocument();
String xmlString = writer.toString();
在上述环境中,是否有任何标准API可用于删除XML header
<?xml version='1.0' ?>
,或者您建议通过字符串操作进行操作:if (s.startsWith("<?xml ")) {
s = s.substring(s.indexOf("?>") + 2);
}
想要在
xmlString
中输出而没有XML header 信息<?xml version='1.0' ?>
。 最佳答案
如果使用JAXP序列化程序,则可以访问XSLT中定义的所有输出属性,例如omit-xml-declaration="yes"
。您可以以“身份转换器”的形式获取此信息,使用不带参数的transformerFactory.getTransformer()
进行调用,然后在其上调用setOutputProperty()
。另一个例子:
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty("omit-xml-declaration", "yes");