代码之家  ›  专栏  ›  技术社区  ›  R.Katnaan

Android XMLSerializer无法将所有数据写入XML文件

  •  -1
  • R.Katnaan  · 技术社区  · 9 年前

    现在,我正在尝试用uiautomator在运行uiautomation测试时编写XML文件。 我使用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();
    

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

    帮帮我,谢谢。

    2 回复  |  直到 9 年前
        1
  •  2
  •   Tushar Gogna    9 年前

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

    实例 :

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

    这更容易,而且做同样的事情。希望有帮助。:)

        2
  •  0
  •   R.Katnaan    8 年前

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

    serializer.endDocument();