1

我正在尝试使用 xStream 并将 mysql 值获取到 *.xml 文件。但是当我用下面的代码尝试这个时,它只是将第一个对象写入一个 xml 文件,然后除了第一个对象之外不添加任何东西。使用 xstream.toXML 或其他东西有问题吗?

 ResultSet kayit = st.executeQuery("select * from otel");
 XStream xstream = new XStream();
 FileWriter xmlFile = new FileWriter("D:\\OTEL.xml");
 while (kayit.next()) {
  Oteldata o = new Oteldata();
  o.name = kayit.getString("otelisim");
  o.room = kayit.getString("oteloda");
  o.konte = kayit.getString("otelkonte");
  String xml = xstream.toXML(o);
  xmlFile.write("<?xml version=\"1.0\"?>\n");
  xmlFile.write(xml + "\n");
  xmlFile.close();
4

1 回答 1

1

您似乎开始了 while 循环,检索对象,使用 xstream.toXML(o),然后进行写入,然后关闭写入文件。没有显示您的写循环的关闭。

尝试:

ResultSet kayit = st.executeQuery("select * from otel");
XStream xstream = new XStream();
FileWriter xmlFile = new FileWriter("D:\\OTEL.xml");
xmlFile.write("<?xml version=\"1.0\"?>\n");
while (kayit.next()) {
    Oteldata o = new Oteldata();
    o.name = kayit.getString("otelisim");
    o.room = kayit.getString("oteloda");
    o.konte = kayit.getString("otelkonte");
    String xml = xstream.toXML(o);
    xmlFile.write(xml + "\n");
}
xmlFile.close();

在循环之前为第一行执行初始写入,然后执行循环写入每个对象,关闭循环,然后关闭文件

于 2012-10-04T20:43:49.020 回答