XML和JTREE的相关代码

package test; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
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;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

import com.xml.XmlDocument;

/**
*
*
@author hongliang.dinghl DOM生成与解析XML文档
*/
public class Test_2 implements XmlDocument {
   
private Document document;
   
private String fileName;

   
public void init() {
       
try {
            DocumentBuilderFactory factory
= DocumentBuilderFactory
                    .newInstance();
            DocumentBuilder builder
= factory.newDocumentBuilder();
           
this .document = builder.newDocument();
        }
catch (ParserConfigurationException e) {
            System.out.println(e.getMessage());
        }
    }

   
/*
     * 创建XML
    
*/
   
public void createXml(String fileName) {
        Element root
= this .document.createElement( " employees " );
       
this .document.appendChild(root);
        Element employee
= this .document.createElement( " employee " );
        Element name
= this .document.createElement( " name " );
        name.appendChild(
this .document.createTextNode( " 张三 " ));
        employee.appendChild(name);
        Element sex
= this .document.createElement( " sex " );
        sex.appendChild(
this .document.createTextNode( " m " ));
        employee.appendChild(sex);
        Element age
= this .document.createElement( " age " );
        age.appendChild(
this .document.createTextNode( " 30 " ));
        employee.appendChild(age);
        root.appendChild(employee);
        TransformerFactory tf
= TransformerFactory.newInstance();
       
try {
            Transformer transformer
= tf.newTransformer();
            DOMSource source
= new DOMSource(document);
            transformer.setOutputProperty(OutputKeys.ENCODING,
" utf-8 " );
            transformer.setOutputProperty(OutputKeys.INDENT,
" yes " );
            PrintWriter pw
= new PrintWriter( new FileOutputStream(fileName));
            StreamResult result
= new StreamResult(pw);
            transformer.transform(source, result);
            System.out.println(
" 生成XML文件成功! " );
        }
catch (TransformerConfigurationException e) {
            System.out.println(e.getMessage());
        }
catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
catch (FileNotFoundException e) {
            System.out.println(e.getMessage());
        }
catch (TransformerException e) {
            System.out.println(e.getMessage());
        }
    }

   
/**
     * 解析XML
    
*/
   
public void parserXml(String fileName) {
           
try {
                DocumentBuilderFactory dbf
= DocumentBuilderFactory.newInstance();
                DocumentBuilder db
= dbf.newDocumentBuilder();
                InputStream is
= new FileInputStream(fileName);
                Document doc
= db.parse(is);
                Element root
= doc.getDocumentElement();
                NodeList employees
= root.getChildNodes();
               
if (employees != null ){
                   
for ( int i = 0 ; i < employees.getLength(); i ++ ){
                        Node employee
= employees.item(i);
                       
if (employee.getNodeType() == Node.ELEMENT_NODE){
                           
for (Node node = employee.getFirstChild(); node != null ; node = node.getNextSibling()){
                               
if (node.getNodeType() == Node.ELEMENT_NODE){
//                                     if(node.getNodeName().equals("name")){
//                                           String name=node.getFirstChild().getNodeValue();
// System.out.println(node.getNodeName()+":"+ name);
//                                       }
//                                      if(node.getNodeName().equals("sex")){
//                                           String sex=node.getFirstChild().getNodeValue();
//                                           System.out.println(node.getNodeName()+":"+ sex);
//                                      }
//                                      if(node.getNodeName().equals("age")){
//                                          String age = node.getFirstChild().getNodeValue();
//                                          System.out.println(node.getNodeName()+":"+ age);
//                                      }
System.out.println(node.getFirstChild().getNodeValue());
                                }
                            }
                        }
                    }
                   
                }
            }
catch (Exception e) {
               
// TODO Auto-generated catch block
                e.printStackTrace();
            }
    }
   
public static void main(String[] args) {
        Test_2 t2
= new Test_2();
        t2.parserXml(
" myTest2.xml " );
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值