/* 读取XML
import javax.xml.parsers.*;
import org.w3c.dom.*;public class xmldisplay {
public static void  main(String args[]){
  try{
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder=factory.newDocumentBuilder();
    Document doc=builder.parse("links.xml");
    doc.normalize();
    NodeList links =doc.getElementsByTagName("link");
   // for (int i=0;i<links.getLength();i++){
      Element link=(Element) links.item(0);
      System.out.print("Content: ");
      System.out.println(link.getElementsByTagName("text").item(0).getFirstChild().getNodeValue());
      System.out.print("URL: ");
      System.out.println(link.getElementsByTagName("url").item(0).getFirstChild().getNodeValue());
      System.out.print("Author: ");
      System.out.println(link.getElementsByTagName("author").item(0).getFirstChild().getNodeValue());
      System.out.print("Date: ");
      Element linkdate=(Element) link.getElementsByTagName("date").item(0);
      String day=linkdate.getElementsByTagName("day").item(0).getFirstChild().getNodeValue();
      String month=linkdate.getElementsByTagName("month").item(0).getFirstChild().getNodeValue();
      String year=linkdate.getElementsByTagName("year").item(0).getFirstChild().getNodeValue();
      System.out.println(day+"-"+month+"-"+year);
      System.out.print("Description: ");
      System.out.println(link.getElementsByTagName("description").item(0).getFirstChild().getNodeValue());
      System.out.println();
  //  }
  }catch(Exception e){
    e.printStackTrace();
  }}
}

解决方案 »

  1.   

    /* 写XML的例子 运行结果是又生成一个 <link>树import javax.xml.parsers.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.*;
    public class xmlwriter {public static void  main(String args[]){
    try{
      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
      DocumentBuilder builder=factory.newDocumentBuilder();
      Document doc=builder.parse("links.xml");
      doc.normalize();
       //---取得变量----
      String text="Wudong's Homepage";
      String url="www.wudong.com";
      String author="Wudong Liu";
      String discription="A site from Wudong Liu, give u lots of suprise!!!";
      //-------------
      Text textseg;
      Element link=doc.createElement("link");  Element linktext=doc.createElement("text");
      textseg=doc.createTextNode(text);
      linktext.appendChild(textseg);
      link.appendChild(linktext);  Element linkurl=doc.createElement("url");
      textseg=doc.createTextNode(url);
      linkurl.appendChild(textseg);
      link.appendChild(linkurl);  Element linkauthor=doc.createElement("author");
      textseg=doc.createTextNode(author);
      linkauthor.appendChild(textseg);
      link.appendChild(linkauthor);  java.util.Calendar rightNow = java.util.Calendar.getInstance();
      String day=Integer.toString(rightNow.get(java.util.Calendar.DAY_OF_MONTH));
      String month=Integer.toString(rightNow.get(java.util.Calendar.MONTH));
      String year=Integer.toString(rightNow.get(java.util.Calendar.YEAR));
      Element linkdate=doc.createElement("date");  Element linkdateday=doc.createElement("day");
      textseg=doc.createTextNode(day);
      linkdateday.appendChild(textseg);  Element linkdatemonth=doc.createElement("month");
      textseg=doc.createTextNode(month);
      linkdatemonth.appendChild(textseg);
      Element linkdateyear=doc.createElement("year");
      textseg=doc.createTextNode(year);
      linkdateyear.appendChild(textseg);  linkdate.appendChild(linkdateday);
      linkdate.appendChild(linkdatemonth);
      linkdate.appendChild(linkdateyear);
      link.appendChild(linkdate);  Element linkdiscription=doc.createElement("description");
      textseg=doc.createTextNode(discription);
      linkdiscription.appendChild(textseg);
      link.appendChild(linkdiscription);  doc.getDocumentElement().appendChild(link);  TransformerFactory tFactory =TransformerFactory.newInstance();
      Transformer transformer = tFactory.newTransformer();
      DOMSource source = new DOMSource(doc);
      StreamResult result = new StreamResult(new java.io.File("links.xml"));
      transformer.transform(source, result);
      }catch(Exception e){
        e.printStackTrace();
      }
      }
    }
      

  2.   

    我的问题 就是在这二个例子上 怎样实现比如只在一个link树中修改<tex>t中的值,删除<text>这个标签,在link中追加一个 <Email>等功能?在线等待
      

  3.   

    给个mail,我发一个我写的xml解析的一个工具类
      

  4.   

    //setNodeValue(); 修改不了/*文章只有一段话“但需要注意的地方是,对Element中所包含的text(在DOM中,这些text也是代表了一个Node的,因此也必须为它们创建相应的node),不能直接用Element对象的setNodeValue()方法来设置这些text的内容,而需要用创建的Text对象的setNodeValue()方法来设置文本,这样才能够把创建的Element和其文本内容添加到DOM树中。
    */import javax.xml.parsers.*;
    import org.w3c.dom.*;public class test_xmldisplay {
    public static void  main(String args[]){
     try{
       DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
       DocumentBuilder builder=factory.newDocumentBuilder();
       Document doc=builder.parse("links.xml");
       doc.normalize();
       NodeList links =doc.getElementsByTagName("link");
      // for (int i=0;i<links.getLength();i++){
         Element link=(Element) links.item(0);
         // 读取 text的项
         //System.out.print("Content: ");
        // System.out.println(link.getElementsByTagName("text").item(0).getFirstChild().getNodeValue());
        //修改text的值
         Node ele = doc.getDocumentElement().getFirstChild().getFirstChild().getLastChild();
         ele.setNodeVale("haha");
         //读取 其他的项
         System.out.print("URL: ");
         System.out.println(link.getElementsByTagName("url").item(0).getFirstChild().getNodeValue());
         System.out.print("Author: ");
         System.out.println(link.getElementsByTagName("author").item(0).getFirstChild().getNodeValue());
         System.out.print("Date: ");
         Element linkdate=(Element) link.getElementsByTagName("date").item(0);
         String day=linkdate.getElementsByTagName("day").item(0).getFirstChild().getNodeValue();
         String month=linkdate.getElementsByTagName("month").item(0).getFirstChild().getNodeValue();
         String year=linkdate.getElementsByTagName("year").item(0).getFirstChild().getNodeValue();
         System.out.println(day+"-"+month+"-"+year);
         System.out.print("Description: ");
         System.out.println(link.getElementsByTagName("description").item(0).getFirstChild().getNodeValue());
         System.out.println();
     //  }
     }catch(Exception e){
       e.printStackTrace();
     }}

      

  5.   

    我的E_mail : [email protected]
      

  6.   

    十分感谢 whyxx(风之子)的支持,我已经解决问题, 
    请欢迎大家与我一起讨论XML