【发布时间】:2011-06-17 08:15:45
【问题描述】:
我有一个文本文件,我想将其转换为 java 中的 XML 文件: 用java读取文件,然后转换成xml。
Contact
Arun_niit
Arun_niit
nura_e@yahoo.co.in
Contact
Contact
Bống MũnHải
Hải Anh Bống Mũn
http://www.facebook.com/profile.php?id=689849077
Contact
我希望按以下顺序输出:
<contact>
<Firstname>Arun_niit</Firstname>
<Secondname>Arun_niit</Secondname>
<Email>nura_e@yahoo.co.in</Email>
</contact>
<contact>
<Firstname>Bống MũnHải</Firstname>
<Secondname>Hải Anh Bống Mũn</Secondname>
<URL>http://www.facebook.com/profile.php?id=689849077</URL>
</contact>
请帮助我,我们将非常感谢您提供示例代码。
请问这是正确的做法吗... [代码]
import java.io.*;
import java.io.ObjectInputStream.GetField;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import java.util.Scanner;
public class Item {
private String Name;
private String LName;
private String Email;
public static void main (String args[]) {
public static void readFile(File file)
{
Scanner freader = new Scanner("D:/juin17.part");
String line = null;
while (freader.hasNextLine()) {
line = freader.nextLine();
if(line==contact){
Item item = new item();
item.Name =freader.nextLine();
item.LName =freader.nextLine();
item.Email =freader.nextLine();
freader.nextLine();
}
itemList.add(item);
}
freader.close();
}
FileOutputStream fos = new FileOutputStream(info.file);
OutputFormat of = new OutputFormat("XML","windows-1250",true);
of.setIndent(1);
of.setIndenting(true);
ContentHandler hd = serializer.asContentHandler();
hd.startDocument();
AttributesImpl atts = new AttributesImpl();
hd.startElement("","",info.category,atts);
for (int i=0;i<itemList.size();i++)
{
atts.clear();
Item temp = new Item();
temp = itemList.get(i);
hd.startElement("","","FirstName",atts);
hd.characters(temp.Name.toCharArray(),0,temp.Name.length());
hd.endElement("","","FirstName");
hd.startElement("","","LastName",atts);
hd.characters(temp.LName.toCharArray(),0,temp.LName.length());
hd.endElement("","","LastName");
hd.startElement("","","Email",atts);
hd.characters(temp.mail.toCharArray(),0,temp.mail.length());
hd.endElement("","","EMail");
}
hd.endElement("","",info.category);
hd.endDocument();
fos.close();
}
}
【问题讨论】:
-
我格式化了你不可读的问题,希望没有语义丢失。
-
您确定
Firstname和Secondname对于第二个联系人都应该是“Bống MũnHải”吗?如果是这样,算法是什么 - 您是否只是忽略第二行(“Hải Anh Bống Mũn”)并将第一行用于两个字段? -
更改了信息。
-
我想知道,您为什么更改已接受的答案