视窗
loading...
您现在的位置:首页 > IT认证 > JAVA >

java中xml解析器的应用实例


xml解析中,通常大家读文件,解析的时候没有问题,但是在写文件的时候常常会碰到乱码等问题,就我的个人体会是一般只要在写文件的时候采用文件流的形式,设置好当前的编码方式,通常就会避免此类问题的发生!下面有两个简单的分别是采用jdom和dom4j实现的例子:

    1、dom4j

    package org.lyj.xml;

    import java.io.OutputStream;

    import java.io.UnsupportedEncodingException;

    import org.dom4j.Document;

    import org.dom4j.Element;

    import java.io.FileWriter;

    import org.dom4j.io.OutputFormat;

    import org.dom4j.Namespace;

    import org.dom4j.io.XMLWriter;

    import java.io.File;

    import java.io.IOException;

    import org.dom4j.DocumentHelper;

    /**

    * <p>Title: </p>

    *

    * <p>Description: </p>

    *

    * <p>Copyright: Copyright (c) 2005</p>

    *

    * <p>Company: </p>

    *

    * @author not attributable

    * @version 1.0

    */

    public class Dom4jTest {

    public void generateDocument() {

    org.dom4j.DocumentFactory df = new org.dom4j.DocumentFactory();

    Document document = df.createDocument();//.createDocument();

    Element catalogElement = document.addElement("catalog");

    catalogElement.addComment("An XML Catalog");

    catalogElement.addProcessingInstruction("target", "text");

    Element journalElement = catalogElement.addElement("journal");

    journalElement.addAttribute("title", "XML Zone");

    journalElement.addAttribute("publisher", "IBM developerWorks");

    Element articleElement = journalElement.addElement("article");

    articleElement.addAttribute("level", "Intermediate");

    articleElement.addAttribute("date", "December-2001");

    Element titleElement = articleElement.addElement("title");

    titleElement.setText("Java configuration with XML Schema");

    Element authorElement = articleElement.addElement("author");

    Element firstNameElement = authorElement.addElement("录音机");

    firstNameElement.setText("Marcello");

    Element lastNameElement = authorElement.addElement("刘");

    lastNameElement.setText("Vitaletti");

    document.addDocType("catalog",

    null, "file://c:/Dtds/catalog.dtd");

    document.setXMLEncoding("gb2312");

    try {

    OutputFormat of = OutputFormat.createCompactFormat();

    of.setEncoding("gb2312");

    XMLWriter output = new XMLWriter(

    new java.io.FileOutputStream(new File("c:/catalog/catalog.xml")),of);

    output.write(document);

    output.close();

    } catch (IOException e) {

    System.out.println(e.getMessage());

    }

    }

    public static void main(String[] argv) {

    Dom4jTest dom4j = new Dom4jTest();

    dom4j.generateDocument();2、jdom

    package org.lyj.xml;

    import org.jdom.output.Format;

    import org.jdom.Document;

    import java.io.IOException;

    import org.jdom.input.SAXBuilder;

    import org.jdom.output.XMLOutputter;

    import org.jdom.JDOMException;

    /**

    * <p>Title: </p>

    *

    * <p>Description: </p>

    *

    * <p>Copyright: Copyright (c) 2005</p>

    *

    * <p>Company: </p>

    *

    * @author not attributable

    * @version 1.0

    */

    public class JdomWriter {

    public JdomWriter() {

    }

    public void write(){

    try {

    SAXBuilder builder = new SAXBuilder();

    Document doc = builder.build("aa.xml");

    XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()。setEncoding("utf-8"));

    outputter.output(doc, new java.io.FileOutputStream("bb.xml"));

    } catch (JDOMException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    public static void main(String args[]){

    JdomWriter jd = new JdomWriter();

    jd.write();

    }

    }

闁靛棌鍋�

闁靛棌鍋�

闁靛棙鍔曢崢銈囨嫻閿濆拑绱i柡鍕閹蜂即鎮ч崼鐔哥秬閻犲洤鐡ㄥΣ鎴﹀Υ閿燂拷
闁哄牜鍓涢悵顖炴焾閵娿儱鐎诲ǎ鍥e墲娴煎懘寮堕妷锔剧埍濞存粌绨肩花浼存嚂閺冨倻绉归柨娑虫嫹閻庣數顢婂ù鍡樻姜閻e本鐣卞ǎ鍥e墲娴煎懘骞嬮幋婊勭拨闁告梹绋掗惇浼村冀閸ャ劍顫栧ǎ鍥e墲娴煎懘鎯冮崟顐㈡瘔濠㈣泛瀚哥槐锟�闁瑰瓨鍨冲⿰鎴犱焊婵犲洤娅㈠ù锝嗙矎閳ь剙鎳愬▓鎴︽偋閸喐缍€闁戒焦銇炵紞鏃堝级閸愯法绀�閻庝絻顫夐崹婊勭椤掑啯绁弶鐐垫櫕濞堟垶绌遍埄鍐х礀濠碘€冲€瑰﹢浣割嚕閸屾繍鍞撮柟瀛樼墬濠€浣圭瑹閸偅缍€闁瑰瓨鐗炵换姘枖閺囨矮绻嗛柟顓у灥椤曨剟宕f繝鍐╊槯闁艰鲸姊婚柈鎾箣閹存粍绮﹂柨娑樻湰濠€鎵博濞嗗海绐楃紒鏂款儏瀹撳棝宕氶悩缁樼彑闁挎冻鎷�閻庣數鎳撶敮顐﹀礆濞戞ê鏁堕悗纭咁潐閸ㄦ粍绂掗浣稿Ы闁规澘绻戦弫顔界濮椻偓閳ь剙鍊哥紞瀣儍閸曨厐褰掓煀椤掑﹦绀�闁艰鲸姊婚柈鎾棘閻熸壆纭€闁挎稒宀搁崑鏍ㄧ閿燂拷:webmaster@jscj.com闁靛棌鍋撻柣顫祷閻︿粙鏁嶉敓锟�4008816886

相关文章

无相关信息
更新时间2022-03-13 11:05:09【至顶部↑】
联系我们 | 邮件: webmaster@jscj.com | 客服热线电话:4008816886(QQ同号) |  濠电儑缍€椤曆勬叏閻愮鍋撻獮鍨仾婵犫偓閸パ屽殫妞ゆ棁顔婄换锟�

付款方式留言簿投诉中心网站纠错二维码手机版

客服电话: