我有一个这样的txt文件
id name sex
1  张三 男
2 李四 女
想把它转换成下面的xml格式
<班级>
  <学生 id=1>
    <name>张三</name>
    <sex>男</sex>
  </学生>
  <学生 id=2>
    <name>李四</name>
    <sex>女</sex>
  </学生></班级>
求救 跪求 请各位大侠指点一下 源码怎么写?请各位大侠 指教下!谢谢了!

解决方案 »

  1.   

    每次读取一行,按行解析生成元素,基本就是这个思路(使用jdom.jar):
    try {
       FileReader read = new FileReader("D:/test.txt");
       BufferedReader br = new BufferedReader(read);
       String contents;
       Element classElement=new Element("班级");  
       while((contents = br.readLine())!=null){
            String[] contentElements = contents.split(" ");
            Element stuElement = new Element("学生");  
            stuElement.addAttribute("id",contentElements[0]);        
     
            Element nameElement = new Element("name");  
            nameElement.addContent(contentElements[1]);  
              
            Element sexElement = new Element("sex");  
            sexElement.addContent(contentElements[2]);  
              
            stuElement.addContent(name);  
            stuElement.addContent(sex);  
              
            classElement.addContent(stuElement);
       }
            Document doc=new Document(classElement);  
              
            XMLOutputter out = new XMLOutputter();   
            out.setFormat(Format.getCompactFormat().setEncoding("GB2312"));          out.output(doc,new FileOutputStream("D:/test.xml"));  
            
      } catch (FileNotFoundException e) {
       e.printStackTrace();
      } catch (IOException e){
       e.printStackTrace();
      } 
      

  2.   

    随便写了下,你需要下载DOM4J 的jar包才能使用。import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.XMLWriter;public class ReadTxt {
    public static void main(String[] args) throws IOException {
    FileReader read = new FileReader("c:/test.txt");
    BufferedReader br = new BufferedReader(read);
    String str = null;
    // 创建一个document
    Document document = DocumentHelper.createDocument();
    // 创建根结点
    Element root = document.addElement("班级");
    while ((str = br.readLine()) != null) {
    String xmlData[] = str.split(" ");
    // 为根结点添加一个student节点
    Element student = root.addElement("学生");
    // 为student添加属性id
    Element id = student.addElement("id");
    id.setText(xmlData[0]);
    // 为student添加属性name
    Element name = student.addElement("name");
    name.setText(xmlData[1]);
    // 为student添加属性sex
    Element sex = student.addElement("sex");
    sex.setText(xmlData[2]);
    }
            XMLWriter output;
            //输出格式化
            OutputFormat format = OutputFormat.createPrettyPrint();
            try {
                output = new XMLWriter(new FileWriter("c:/test.xml"), format);
                output.write(document);
                output.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
    }}
      

  3.   

    写Xml要用DTD:
    <?xml version="1.0" ecoding="UTF-8" standalone="yes"?>
    <!DOCTYPE 班级[
         <!ELEMENT name (#PCDATA)>
         <!ELEMENT sex (#PCDATA)>
         <!ATTLIST sex (男|女) #REQUIRED>
         <!ELEMENT 学生 ANY>
         <!ATTLIST 学生 id CDATA "1">
         <!ELEMENT 学生 (name,sex)>
    ]><班级>
      <学生 id=1>
          <name>张三</name>
          <sex>男</sex>
      </学生>
      <学生 id=2>
          <name>李四</name>
          <sex>女</sex>
      </学生>
    </班级>
       写完了没运行,不敢保证100%对。反正就是这样的格式啦
      

  4.   


    <!DOCTYPE 班级[
            <!--这里面,缺了一行代码,-->
            <!ELEMENT 班级 (学生)>
    ]>     写完了,把后缀名改就.xml,就可以了。不知道大家怎么样看~~~
      

  5.   

    先读入txt文件然后分析每一行的数据,根据数据的形式在用dom4j来写xml文件
      

  6.   

     XMLWriter output;
            //输出格式化
            OutputFormat format = OutputFormat.createPrettyPrint();
            //指定XML编码(默认编码为UTF-8,如果有汉字不能正常显示)
            format.setEncoding("GB2312")
    ;