Android-如何以xml格式将Sqlite表导出到外部存储
您好,我有一个应用程序,我需要将Sqlite表转换为Xml,并将其保存到外部存储器以便以后使用 我已经成功地在运行时创建了Sqlite表。它有13列。每一行代表一个对象(产品),每一列应该是Xml文件中的一个标记 下面是我试图创建Xml文件的部分Android-如何以xml格式将Sqlite表导出到外部存储,android,xml,sqlite,android-external-storage,Android,Xml,Sqlite,Android External Storage,您好,我有一个应用程序,我需要将Sqlite表转换为Xml,并将其保存到外部存储器以便以后使用 我已经成功地在运行时创建了Sqlite表。它有13列。每一行代表一个对象(产品),每一列应该是Xml文件中的一个标记 下面是我试图创建Xml文件的部分 while(cursor2.moveToNext()) { veriler.add(cursor2.getInt(0) + "-" + cursor2.getString(1) + "-" + cursor2.getString(2)
while(cursor2.moveToNext()) {
veriler.add(cursor2.getInt(0) + "-" + cursor2.getString(1) + "-" + cursor2.getString(2) + "-" + cursor2.getString(3) + "-" + cursor2.getString(4) + "-" + cursor2.getString(5) + "-" + cursor2.getString(6) + "-" + cursor2.getString(7) + "-" + cursor2.getString(8) + "-" + cursor2.getString(9) + "-" + cursor2.getString(10) + "-" + cursor2.getString(11) + "-" + cursor2.getInt(12) + "-" + cursor2.getInt(13));
logolustur.WriteLogInformation(cursor2.getString(1),cursor2.getString(2),cursor2.getString(3),cursor2.getString(4),cursor2.getString(5),cursor2.getString(6),cursor2.getString(7),cursor2.getString(8),cursor2.getString(9),cursor2.getString(10),cursor2.getString(11),cursor2.getInt(12),cursor2.getInt(13));
}
表的第一列是id列,我不需要它作为Xml中的标记,这就是为什么我没有将它发送到我的WriteLogInformation方法
下面是我的WriteLogInformation方法(用于创建xml)如下所示:
public void WriteLogInformation(String aracno, String siparisno, String urunadstr, String urunkodstr, String serinostr, String topukstr, String strKullaniciAd, String islemtipi, String okutmatipi, String mno, String hata, int siparismiktari, int teslimmiktari) {
String path=context.getFilesDir().getAbsolutePath()+"/log2.xml";
File file = new File( path );
try {
fos= context.getApplicationContext().openFileOutput("log2.xml",context.MODE_PRIVATE);
serializer.setOutput(fos, "UTF-8");
serializer.startDocument(null, Boolean.valueOf(true));
serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
serializer.startTag(null, "XML");
serializer.startTag(null, "XMLDATA");
serializer.startTag(null, "ARACNO");
serializer.text(aracno);
serializer.endTag(null, "ARACNO");
serializer.startTag(null, "PN_SIPARIS_NO");
serializer.text(siparisno);
serializer.endTag(null, "PN_SIPARIS_NO");
serializer.startTag(null, "URUNADI");
serializer.text(urunadstr);
serializer.endTag(null, "URUNADI");
serializer.startTag(null, "URUNKODU");
serializer.text(urunkodstr);
serializer.endTag(null, "URUNKODU");
serializer.startTag(null, "BARKOD");
serializer.text(serinostr);
serializer.endTag(null, "BARKOD");
serializer.startTag(null, "TOPUKKODU");
serializer.text(topukstr);
serializer.endTag(null, "TOPUKKODU");
serializer.startTag(null, "SOFORADI");
serializer.text(strKullaniciAd);
serializer.endTag(null, "SOFORADI");
serializer.startTag(null, "ISLEMTIPI");
serializer.text(islemtipi);
serializer.endTag(null, "ISLEMTIPI");
serializer.startTag(null, "OKUTMATIPI");
serializer.text(okutmatipi);
serializer.endTag(null, "OKUTMATIPI");
serializer.startTag(null, "MUSTERIADI");
serializer.text(mno);
serializer.endTag(null, "MUSTERIADI");
serializer.startTag(null, "HATA");
serializer.text(hata);
serializer.endTag(null, "HATA");
serializer.startTag(null, "MIKTAR");
serializer.text(String.valueOf(siparismiktari));
serializer.endTag(null, "MIKTAR");
serializer.startTag(null, "TESLIMMIKTAR");
serializer.text(String.valueOf(teslimmiktari));
serializer.endTag(null, "TESLIMMIKTAR");
serializer.endTag(null,"XMLDATA");
serializer.endDocument();
serializer.flush();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
它没有给出错误,但我无法检查是否创建了Xml文件,以及是否将其保存到外部存储器
我想要的Xml应该如下所示:
<XMLDATA>
<ARACNO>AKO_448846</ARACNO>
<ARACADI>KIRŞEHİR DENEME 28.4.</ARACADI>
<SOFORADI>AHMET TALHA</SOFORADI>
<PN_SIPARIS_NO>C003771814</PN_SIPARIS_NO>
<MUSTERIADI>MAHMUT ILHAN - OTO LASTIK TAMIR ????</MUSTERIADI>
<ADRES>ORTA MAH.SANAYI SITESI NO:35 BOZTEPE KIRŞEHİR</ADRES>
<URUNKODU>5799</URUNKODU>
<URUNADI>12.5/80-15.3 16PR IMF-18 TL 144 A8</URUNADI>
<BARKOD>5799/00003597</BARKOD>
<TOPUKKODU>30776212</TOPUKKODU>
<MIKTAR>1</MIKTAR>
<TESLIMMIKTAR>0</TESLIMMIKTAR>
</XMLDATA>
<XMLDATA>
<ARACNO>AKO_448846</ARACNO>
<ARACADI>KIRŞEHİR DENEME 28.4.</ARACADI>
<SOFORADI>AHMET TALHA</SOFORADI>
<PN_SIPARIS_NO>C003771810</PN_SIPARIS_NO>
<MUSTERIADI>MAHMUT ILHAN - OTO LASTIK TAMIR ????</MUSTERIADI>
<ADRES>ORTA MAH.SANAYI SITESI NO:35 BOZTEPE KIRŞEHİR</ADRES>
<URUNKODU>8470</URUNKODU>
<URUNADI>900-16 (V3-02-8)</URUNADI>
<BARKOD />
<TOPUKKODU />
<MIKTAR>4</MIKTAR>
<TESLIMMIKTAR>0</TESLIMMIKTAR>
</XMLDATA>
AKO_448846
基尔·埃赫·德内梅28.4。
艾哈迈特·塔哈
C003771814
MAHMUT ILHAN-OTO LASTIK TAMIR????
ORTA MAH.SANAYI现场编号:35 BOZTEPE KIRŞEHİR
5799
12.5/80-15.3 16PR IMF-18 TL 144 A8
5799/00003597
30776212
1.
0
AKO_448846
基尔·埃赫·德内梅28.4。
艾哈迈特·塔哈
C003771810
MAHMUT ILHAN-OTO LASTIK TAMIR????
ORTA MAH.SANAYI现场编号:35 BOZTEPE KIRŞEHİR
8470
900-16(V3-02-8)
4.
0
那么,有没有更好/更简单的选择呢?或者我的代码中仍然有希望在外部存储中保存一个Xml文件,如上图所示
基本上,如何将xml格式的sqlite表导出到sd卡?。由于表中每一行的每一列都是一个标记,每一行都代表一个Xml块。出于好奇,您的清单中是否有正确的权限?否则,您将无法写入SD卡。是的,ofc我有。
Context#getFilesDir()
返回应用程序内部存储中的目录,而不是外部存储中的目录:。另请注意,写入外部存储是一种危险的权限:。