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");

07-28 01:40
查看更多