fuliangliang的Blog

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

用户操作
[即时聊天] [发私信] [加为好友]
fuliangliangID:fuliangliang
65183次访问,排名1602(1)好友1人,关注者3
fuliangliang的文章
原创 100 篇
翻译 0 篇
转载 25 篇
评论 29 篇
fuliang的公告

我的联系方式:20542606

Email:fuliangliang@gmail.com


最近评论
topgunqq:条理清楚,简单易学.比网上其他例子要好一些.至少按照楼主写的过程,我这个初学者实验成功了!
marshluca:恭喜~~
请问有没rails 做的项目,比方blog?
marshluca@gmail.com
marshluca:恭喜~~
请问有没rails 做的项目,比方blog?
marshluca@gmail.com
chucai:写的非常的好,仔细的拜读了。思路很清晰。考虑的问题也比较全面。
tbsc3:我也遇到了这个问题,如果配1 M就有用,大于2M就还是默认的 不知道你有没有解决呀,教教我
文章分类
收藏
    相册
    净月潭一日游
    页面图片
    日历
    文章收藏
    我的JavaEye博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 dom对xml的操作收藏

    新一篇: 今年保研,还真奇怪,保44,结果45报名考试,一人缺考.呵呵 | 旧一篇: 用java写的基于Socket的简单即时通讯程序


    import javax.xml.parsers.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.xml.sax.*;  
    import java.io.*;
    import org.w3c.dom.*;

    public class control implements java.io.Serializable {
       
    private static String xmlStr="";
       
    private static int index=3;
       
    //private static final String PATH="file:///";
        
       
    public control() {
       }


       
    public String getString(){
            
    return xmlStr;
       }


       
    public static Document getDocument(String filename) throws Exception {
           xmlStr
    ="";
           DocumentBuilderFactory dbf 
    = DocumentBuilderFactory.newInstance();
            
    // 设定解析的叁数
            dbf.setIgnoringComments(true);
            dbf.setIgnoringElementContentWhitespace(
    true);
            DocumentBuilder db 
    = dbf.newDocumentBuilder();
            
    //导入XML文件
            Document doc = db.parse(filename);
            
    return doc;
       }

        
       
    public int addElement(Node node,String name,String sex,String age, String tel){

                 
                 Element oRoot
    =((Document)node).getDocumentElement();
                             
                 Element ename 
    =((Document)node).createElement("name");  
                 Text tname 
    =((Document)node).createTextNode(name); 
                 ename.appendChild(tname); 

                 Element esex 
    = ((Document)node).createElement("sex");  
                 Text tsex 
    = ((Document)node).createTextNode(sex); 
                 esex.appendChild(tsex); 
              
                 Element eage 
    = ((Document)node).createElement("age");  
                 Text tage 
    = ((Document)node).createTextNode(age); 
                 eage.appendChild(tage); 
                
                 Element etel 
    = ((Document)node).createElement("tel");  
                 Text ttel  
    = ((Document)node).createTextNode(tel); 
                 etel.appendChild(ttel);
         
                 Element stu  
    =((Document)node).createElement("student"); 
                 stu.setAttribute(
    "id",Integer.toString(index));
                 index
    ++;
                 stu.appendChild(ename);
                          stu.appendChild(esex);
                          stu.appendChild(eage);
                          stu.appendChild(etel);
                
                 oRoot.appendChild(stu); 
                 save((Document)node);
                 
    if(stu==nullreturn 0;
                 
    return 1;
       }

         
       
    public void traverseTree(Node node) throws Exception {
             
    if(node == null{
                
    return;
             }

             
    int type = node.getNodeType();

             
    switch (type) {

                
    // handle document nodes
                case Node.DOCUMENT_NODE: {
                   xmlStr
    +="<tr>";
                   traverseTree(((Document)node).getDocumentElement());
                   
    break;
                }


                
    // handle element nodes
                case Node.ELEMENT_NODE: {
                   String elementName 
    = node.getNodeName();
                   
    if(elementName.equals("student")) {
                     xmlStr
    +="</tr><tr>";
                   }

                   NodeList childNodes 
    =node.getChildNodes();
                   
    if(childNodes != null{
                      
    int length = childNodes.getLength();
                      
    for (int loopIndex = 0; loopIndex <length ; loopIndex++)
                      
    {
                         traverseTree(childNodes.item(loopIndex));
                      }

                   }

                   
    break;
                }

                
                
    // handle text nodes
                case Node.TEXT_NODE: {
                   String data 
    = node.getNodeValue().trim();
                   
    if((data.indexOf(" ")  <0&& (data.length()> 0)) {
                     xmlStr
    +="<td>"+data+"</td>";
                   }

                }

             }

        }

            
    //增加的保存操作
            private void save(Document doc){
                
    try{
                    TransformerFactory tFactory 
    =TransformerFactory.newInstance();
                    Transformer transformer 
    = tFactory.newTransformer();
                    DOMSource source 
    = new DOMSource(doc);
                    StreamResult result 
    = new StreamResult(new java.io.File("ok.xml"));
                    transformer.transform(source, result); 
                }
    catch(TransformerConfigurationException e)
            
    {
                e.printStackTrace();
            }
    catch(TransformerException e)
            
    {
               e.printStackTrace();
            }


            }

            
      
    public static void main(String []args){
                control ctrl 
    = new control();
                
    try{
                Document doc 
    = ctrl.getDocument("ok.xml");
                String name 
    = "haha";
                String sex 
    = "female";
                String age 
    = "22";
                String tel 
    = "23256";
                
               
    int i=ctrl.addElement(doc,name,sex,age,tel);
               Element oRoot
    =(doc).getDocumentElement();
               ctrl.traverseTree(oRoot);
               String str 
    = ctrl.getString();
               System.out.println(str);
               
           }
    catch(Exception e){
            e.printStackTrace();
           }

            }

    }

     

    发表于 @ 2006年09月10日 08:43:00|评论(loading...)|编辑

    新一篇: 今年保研,还真奇怪,保44,结果45报名考试,一人缺考.呵呵 | 旧一篇: 用java写的基于Socket的简单即时通讯程序

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © fuliang