首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

XML读写相干操作

2012-10-24 
XML读写相关操作?import java.io.FileWriterimport java.io.IOExceptionimport java.io.InputStreamimp

XML读写相关操作

?

import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;/** * XML相关操作 *  * @author nassir wen */public class XmlHelper {    /**     *      * 通过已知xml字符串创建document对象     * 参考:http://dennis-zane.iteye.com/blog/57542     * @param xmlStr     * @return     * @throws DocumentExceptionss     */    public static Document createDocByXmlStr(String xmlStr)            throws DocumentException {        return DocumentHelper.parseText(xmlStr);    }    /**     *      * 通过xml文件路径创建已知字符串document对象     *      * @param path     * @return     * @throws DocumentException     */    public static Document createDocByPath(String path)            throws DocumentException {        SAXReader saxReader = new SAXReader();        return saxReader.read(path);    }    /**     * 通过xml字节流Document对象     *      * @return     */    public static Document createDoc(InputStream in) throws DocumentException {        SAXReader saxReader = new SAXReader();        return saxReader.read(in);    }    /**     * 创建Document对象     *      * @return     */    public static Document createDoc() {        return DocumentHelper.createDocument();    }    /**     * 获取单个node     *      * @param xPath     * @return     */    public static Node getNode(Document doc, String xPath) {        return doc.selectSingleNode(xPath);    }    /**     * 获取集合nodes     *      * @param xPath     * @return     */    public static List<Node> getNodes(Document doc, String xPath) {        return doc.selectNodes(xPath);    }    /**     * 获取属性值     *      * @param node     * @param attrName     * @return     */    public static String getAttrVal(Node node, String attrName) {        Element e = (Element) node;        return e.attributeValue(attrName);    }    /**     * 返回构造好的xml字符串     *      * @param doc     * @return     */    public static String outXmlStr(Document doc) {        return doc.asXML();    }    /**     * 保存xml到文件     *      * @param fileName     * @param doc     * @throws IOException     */    public static void saveXml(String fileName, Document doc)            throws IOException {// 将Document输出到文件        // 读取文件        FileWriter fileWriter = new FileWriter(fileName);        // 设置文件编码        OutputFormat xmlFormat = new OutputFormat();        xmlFormat.setEncoding("GB2312");        // 创建写文件方法        XMLWriter xmlWriter = new XMLWriter(fileWriter, xmlFormat);        // 写入文件        xmlWriter.write(doc);        // 关闭        xmlWriter.close();    }    public static void main(String[] args) {        // 测试        try {            Document doc = XmlHelper.createDoc();            // 设置编码            doc.setXMLEncoding("GB2312");            Element root = doc.addElement("root");            Element op_code = root.addElement("op_code");            Element op_name = root.addElement("op_name");            Element op_user = root.addElement("op_user");            Element op_passwd = root.addElement("op_passwd");            Element op_time = root.addElement("op_time");            Element sp_id = root.addElement("sp_id");            Element package_id = root.addElement("package_id");            Element total_num = root.addElement("total_num");            Element total_amt = root.addElement("total_amt");            Element client_ip = root.addElement("client_ip");            op_code.setText("1013");            op_name.setText("batch_draw");            // 测试attr 生成            op_name.addAttribute("test", "1001");            op_user.setText("");            op_passwd.setText("");            op_time.setText("");            sp_id.setText("");            package_id.setText("");            total_num.setText("");            total_amt.setText("");            client_ip.setText("");            // 付款记录            Element record_set = root.addElement("record_set");            Element record = record_set.addElement("record");            Element serial = record.addElement("serial");            Element rec_bankacc = record.addElement("rec_bankacc");            Element bank_type = record.addElement("bank_type");            Element rec_name = record.addElement("rec_name");            Element pay_amt = record.addElement("pay_amt");            Element acc_type = record.addElement("acc_type");            Element area = record.addElement("area");            Element city = record.addElement("city");            Element subbank_name = record.addElement("subbank_name");            Element desc = record.addElement("desc");            serial.setText("");            rec_bankacc.setText("");            bank_type.setText("");            rec_name.setText("");            pay_amt.setText("");            acc_type.setText("");            area.setText("");            city.setText("");            subbank_name.setText("");            desc.setText("");            System.out.println(XmlHelper.outXmlStr(doc));            XmlHelper.saveXml("tenpay.xml", doc);            // 读取            Document docXml = XmlHelper.createDocByPath("tenpay.xml");            System.out.println(XmlHelper.getNode(docXml,"//root/op_code").getText());            // 获取属性名称            System.out.println("arrt: "                    + XmlHelper.getAttrVal(XmlHelper.getNode(docXml,"//root/op_name"),                            "test"));            System.out.println("-----------------------------------------------------");            Document docStr = XmlHelper.createDocByXmlStr("<person> <name>James</name> </person>");            System.out.println(XmlHelper.getNode(docStr,"//person/name").getText());        } catch (DocumentException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

热点排行