【问题标题】:Android XMLSerializer cannot write all data into XML fileAndroid XMLSerializer 无法将所有数据写入 XML 文件
【发布时间】:2015-03-12 08:48:03
【问题描述】:

现在,我正在尝试编写 XML 文件来运行 uiautomator 的 uiautomation 测试。 我使用 XMLSerializer 在 android 中编写 XML。没关系。它在运行测试时写入 XML 文件。一件事它无法写入所有数据,如下所示。

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tests>
    <test>
         <no>1</no>
         <desc>Test One</desc>
    </test>
    <test>
         <no>2</no>
         <desc>Test Two</desc>
    </test>
    <tes

看,它不能写入所有数据。这是我的代码。

// Export XML file content.
XmlSerializer serializer = Xml.newSerializer();

StringWriter stringWriter = new StringWriter();

serializer.setOutput(stringWriter);
serializer.startDocument("UTF-8", true);
serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);

serializer.startTag(null, "tests");

for(Test test : testList){
    serializer.startTag(null, "test");

    serializer.startTag(null, "no");
    serializer.text(test.getNo());
    serializer.endTag(null, "no");

    serializer.startTag(null, "desc");
    serializer.text(test.getDesc());
    serializer.endTag(null, "desc");

    serializer.endTag(null, "test");
}

serializer.endTag(null, "tests");

// Write file.
FileWriter fileWriter = new FileWriter("test.xml");

fileWriter.write(stringWriter.toString());

fileWriter.close();

我的 testList 至少有 15 个测试。因此,它应该编写所有测试。但它只写了 2。为什么!我不知道。

帮帮我。谢谢。

【问题讨论】:

  • 在这种情况下我更喜欢使用 Editable。像这样:Editable editable; editable.append("&lt;Type&gt; " + "Name"+ " &lt;/Type&gt;" + "&lt;Class&gt;" +"Class Name" + "&lt;/Class&gt; " );。它更容易并且做同样的事情。
  • 是的 Tushar,我删除了 Serializer 并将其替换为 StringBuffer 并使用 append 方法。现在,对我来说没问题。谢谢你的建议。
  • 很高兴为您提供帮助。要我将其发布为其他有相同问题的人的答案吗?

标签: java android xml xmlserializer


【解决方案1】:

在这种情况下,我更愿意使用Editable

示例

 Editable editable;
....
....
....
 editable.append("<Type> " + "Name"+ " </Type>" + "<Class>" +"Class Name" + "</Class>");

它更容易并且做同样的事情。希望能帮助到你。 :)

【讨论】:

    【解决方案2】:

    主要问题是“你没有结束序列化程序的文档”如下:

    serializer.endDocument();
    

    【讨论】:

      猜你喜欢
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-08
      相关资源
      最近更新 更多