【问题标题】:Is startDocument() with Androids XMLSerializer required?是否需要带有 Androids XMLSerializer 的 startDocument()?
【发布时间】:2013-07-26 13:34:36
【问题描述】:

对于某个应用程序(序列化和反序列化对象以通过 XMPP PubSub 项有效负载传输),我需要创建 XML 片段 - 这是我必须省略文档声明。

我正在使用org.xmlpull.v1.XmlSerializer 类;不幸的是,似乎没有太多关于正确使用它的文档。至少我在其startDocument() 方法上找到的所有文档都不清楚我是否可以跳过调用此方法。至少我发现的所有示例都调用了这种方法(但所有示例都只解释了如何创建完整的 XML 文档,没有片段)。

举个代码例子:

XmlSerializer xmlSerializer = Xml.newSerializer();
StringWriter xmlStringWriter = new StringWriter();

try {
    xmlSerializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
    xmlSerializer.setOutput(xmlStringWriter);

    // xmlSerializer.startDocument("UTF-8", true);

    xmlSerializer.startTag(null, "tag-name");
    // ...
    xmlSerializer.endTag(null, "tag-name";

    // xmlSerializer.endDocument();

    xmlSerializer.flush();
} catch (IOException e) {
    // Hanle exception
}
String xmlOutputString = xmlStringWriter.toString();

这是允许的吗?如果没有,是否有任何其他方法可以使用 XMLSerializer 生成片段,而无需解析输出字符串以手动删除文档声明(例如,仅使用 null 参数调用 startDocument)?

【问题讨论】:

    标签: java android xml-serialization


    【解决方案1】:

    下面是简短的答案:不,不需要调用startDocument(),并且会跳过生成文档声明。

    【讨论】:

      猜你喜欢
      • 2011-07-12
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      相关资源
      最近更新 更多