0

以下の形式のテキストファイルの内容を解析したい

テキストファイルデータの例

key1:value1
key2:value2
key3:value3

上記のコンテンツをキー値形式で解析し、このテキスト ファイルから xml ファイルを作成します。

xmlファイルデータの例(この形式が欲しい)

<string name="key1">value1</string>
<string name="key2">vaue2</string>
<string name="key3">value3</string>

これは、Windows またはコマンド プロンプトでスクリプト ファイルを使用して実行する必要があります。

この問題を解決する方法を教えてください。または、サンプル コードまたはチュートリアルのリンクを教えてください。

4

3 に答える 3

1

問題はawkと呼ばれるプログラムを使用して簡単です

$ awk -F: 'BEGIN{print"<data>"} {printf"<string name=\"%s\">%s</string>\n",$1,$2} END{print"</data>"}' input.txt
<data>
<string name="key1">value1</string>
<string name="key2">value2</string>
<string name="key3">value3</string>
</data>
于 2013-05-14T19:28:52.707 に答える
0

試す

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();

またはこれを試してください

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();
于 2013-05-14T13:07:06.813 に答える
0

You could do this using Ant. Here's an Ant target that does what you ask for:

<target name="text2xml">
    <copy file="originalfile.txt" tofile="xmlfile.xml" overwrite="true"/>
    <replaceregexp file="xmlfile.xml"
                   match="(.*):(.*)"
                   replace='&lt;string name="\1"&gt;\2&lt;/string&gt;'
                   byline="true"/>

</target>
于 2013-05-14T13:13:49.523 に答える