1

に変換したいのですtext filexml file、大量の文字列がありますが、xmlに直接書きたくありません。

テキストファイルを作成したので、これを変換したい

テキストファイルをxml形式に変換しましたが、このファイルを実行しても出力が得られません。これが私の

コード:

public void convert() throws Exception {

 String text[]=new String[10];

 FileOutputStream fout = new FileOutputStream("res/values/mysml.xml");

 OutputStreamWriter out = new OutputStreamWriter(fout);  

 InputStream in= getAssets().open("myText.txt");

 Scanner scn = new Scanner(is);

for(int i=0;i<10;i++)

text[i]=bin.readLine();

out.write("<?xml version=\"1.0\"?>\r\n");  

out.write("<resources>\r\n");  

for (int i = 0; i < 10; i++){

out.write("<item>"+text[i]+"</item>");

}

out.write("</resources>");

out.flush();

out.close();

}

4

6 に答える 6

2

私が理解していることから、実行時にアプリのres/values/フォルダーにxmlを動的に作成したいと考えています。アプリのリソースで読み取りアクセス権しか持っていないため、これは不可能だと思います。xmlをresフォルダに保存する代わりに、内部または外部のメモリを試してください。Androidのストレージオプションの詳細については、こちらをご覧ください

于 2012-07-31T10:27:12.093 に答える
2

それを行う必要がある場合は、StAXを使用してください。より簡単な方法で閉じるタグを開くことができ、ライターがファイルも処理します。

XMLOutputFactory output = XMLOutputFactory.newInstance();
XMLStreamWriter writer = output.createXMLStreamWriter(new BufferedWriter(new FileWriter(new File(FILE_PATH))));
writer.writeStartDocument("UTF-8","1.0");
// Write Whatever file you have as string
writer.flush();
writer.close();

また、StAXにはJDK1.6が付属しています

于 2012-07-31T10:44:22.430 に答える
1

試す

BufferedReader reader=new BufferedReader(new InputStreamReader(in));

String line=null;
out.write("<?xml version=\"1.0\"?>\r\n");  
out.write("<resources>\r\n");  
while((line=reader.readLine())!=null)
{
  out.write("<item>"+line+"</item>");
}
out.write("</resources>");
out.close();
于 2012-07-31T10:17:35.093 に答える
0

http://www.xml-sitemaps.com/でサイトを確認してください。

スクロール ウィンドウで変更を行います。たとえば、サブフォルダーに html ファイルを追加します。すでにあるようにコーディングを入れてください。

Web ページから XML ファイルを保存しないでください。ウィンドウに変更されていないコードが表示されます。

スクロール ウィンドウからテキストをコピーします。空白のメモ帳ページに貼り付けます。

「sitemap.xml」として保存します。

xml ファイルとして保存するには、引用符を付けることを忘れないでください。

于 2013-02-14T13:37:09.787 に答える
0
for(int i=0;i<10;i++){
    text[i]=bin.readLine();
} <-----

out.write("<?xml version=\"1.0\"?>\r\n");  

out.write("<resources>\r\n"); 



for (int i = 0; i < 10; i++){
    out.write("<item>"+text[i]+"</item>");
}
于 2012-07-31T10:17:51.660 に答える
0

ストリームにフラッシュするには、次の行をここに追加します。

out.write("</resources>");
//line
out.flush();

out.close();
于 2012-07-31T10:18:36.400 に答える