如何将一个String(比如<A>abc</A>)转换为一个DOM Element。
用Java标准方法,JDOM等对我没有意义。
谢谢。

解决方案 »

  1.   

    直接转不清楚怎么写
    不过可以通过将String先写入文件
    再从文件来解析生成Element
      

  2.   

    直接转不清楚怎么写 
    不过可以通过将String先写入文件 
    再从文件来解析生成Element
      

  3.   

    同意3楼的做法,建议楼主试试
    我这试过,给你看看,参孝一下吧
    package com.niit.xml;
      
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.PrintWriter;import com.niit.xml.XmlWriter; 
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import javax.xml.parsers.*;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    public class ParseStudents {

    DocumentBuilderFactory factory;
    DocumentBuilder builder;
    Document document;



    public void addStudent(File file, Student student){
     factory = DocumentBuilderFactory.newInstance();
     factory.setValidating(true);        //有效性检查
     
     try{
     
     builder = factory.newDocumentBuilder();
    document = builder.parse(file);      //解析文件
    Element root = document.getDocumentElement();
    Element  studentElement = document.createElement("学生");
    Element  nameElement = document.createElement("姓名");
    Element  ageElement = document.createElement("年龄");
    Element  scoreElement = document.createElement("成绩");
    Element  javaElement = document.createElement("Java");
    Element  oracleElement = document.createElement("Oracle");
    Element  xmlElement = document.createElement("Xml");
    Element  schoolElement = document.createElement("学校");


    nameElement.appendChild(document.createTextNode(student.getName()));
    ageElement.appendChild(document.createTextNode(String.valueOf(student.getAge())));
    javaElement.appendChild(document.createTextNode(String.valueOf(student.getJava())));
    oracleElement.appendChild(document.createTextNode(String.valueOf(student.getOracle())));
    xmlElement.appendChild(document.createTextNode(String.valueOf(student.getXml())));
    schoolElement.appendChild(document.createTextNode(student.getSchool()));

    scoreElement.appendChild(javaElement);
    scoreElement.appendChild(oracleElement);
    scoreElement.appendChild(xmlElement); 

    studentElement.setAttribute("SID", student.getSid());
    studentElement.appendChild(nameElement);
    studentElement.appendChild(ageElement);
    studentElement.appendChild(scoreElement);
    studentElement.appendChild(schoolElement);

    root.appendChild(studentElement);
     
     }catch(Exception e){
     e.printStackTrace();
     }
    }
    }
      

  4.   

    import java.io.File; 
    import java.io.FileOutputStream; import javax.xml.parsers.DocumentBuilder; 
    import javax.xml.parsers.DocumentBuilderFactory; 
    import javax.xml.parsers.ParserConfigurationException; 
    import javax.xml.transform.Source; 
    import javax.xml.transform.Transformer; 
    import javax.xml.transform.TransformerFactory; 
    import javax.xml.transform.dom.DOMSource; 
    import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; 
    import org.w3c.dom.Element; public class CreateXMLDocument{ public static void main(String args[]) throws ParserConfigurationException, Exception{ 
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder builder = factory.newDocumentBuilder(); 
    Document doc = builder.newDocument(); 
    Element root = doc.createElement("data"); 
    doc.appendChild(root); 
    root.setAttribute("type", "abc"); 
    //创建文件 
    File file = new File("d:/testCreatXml.xml"); 
    if( !file.exists()||!file.isFile()){ 
    new FileOutputStream("d:/testCreatXml.xml"); 
    file = new File("d:/testCreatXml.xml"); 

    StreamResult streamResult = new StreamResult(file); 
    Source inputSource = new DOMSource(doc); 
    TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
    Transformer transformer = transformerFactory.newTransformer(); 
    transformer.transform(inputSource, streamResult); 

    }
      

  5.   

    package xml2;import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.XMLWriter;/**
     * 创建xml文件 可以根据你的javabean创建你的xml文件
     * 
     * @author tangyong
     * 
     */
    public class createxml { public String createxml(String message, String season) { // 创建dom4j文档对象
    Document document = DocumentHelper.createDocument();
    // 使用文档对象创建根节点的xml
    Element user_table = document.addElement("user_table");
    // 根节点的描述
    user_table.addComment("用户信息表");

           // 添加属性
    Element userid = user_table.addElement("userid");
    userid.addAttribute ("type", "String");
    userid.addAttribute("length", "32");
    userid.addAttribute("isNull", "ture");
    userid.setText("xb0001");

    // 添加属性
    Element name = user_table.addElement("name");
    name.addAttribute ("type", "String");
    name.addAttribute("length", "32");
    name.addAttribute("isNull", "ture");
    name.setText("唐勇");
      Element password = user_table.addElement("password");
    password.addAttribute ("type", "String");
    password.addAttribute("length", "32");
    password.addAttribute("isNull", "ture");
    password.setText("123321");

     
    // 此文档的xml的编码格式
    document.setXMLEncoding("GBK");
    // document.addDocType("WSData",null,"vbao.dtd");  document.addDocType("catalog", 
                     null,"file://c:/Dtds/catalog.dtd"); 


    // 生产xml
    try {
    XMLWriter xw = new XMLWriter(new FileWriter(new File(
    "C:/TangXML/testXML_1.xml")));
    xw.write(document);
    xw.close(); } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } return document.asXML();
    } public static void main(String[] args) { createxml cxml = new createxml();
    String xxx = cxml.createxml("11", "22");

    /*File file =new File("c:/tangyong.txt");
    try {
    FileWriter fw=new FileWriter(file);
    fw.write("我爱你们");
    fw.close();

    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }*/

    System.out.println(xxx.toString()); }}