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

Java操作XML(应用org.w3c.dom)

2012-12-18 
Java操作XML(使用org.w3c.dom)) ????} ????????????????/*全局变量*/????????static Logger loggerLogge

Java操作XML(使用org.w3c.dom)
); ????} ????????????????/*全局变量*/????????static Logger logger=Logger.getLogger("XmlOper"); }三、新建XML文件

?

?

?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211XmlCreater.java ???用于创建XML文件 ??/******************************************************************** ?* 项目名称??? :rochoc?? <p> ?* 包名称????? :rochoc.xml.oper <p> ?* 文件名称??? :XmlCreater?? <p> ?* 编写者???? :luoc??? <p> ?* 编写日期??? :2005-6-22??? <p> ?* 程序功能(类)描述 : 创建DOM并生成XML文件????? <p> ?*? ?* 程序变更日期?? : ?* 变更作者??? : ?* 变更说明??? : ********************************************************************/package rochoc.xml.oper; ??import java.io.File; ??import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; 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.apache.log4j.Logger; import org.w3c.dom.Document; import org.w3c.dom.Element; ??/** ?* 类名:XmlCreater? <p> ?* 类描述: 创建DOM并生成XML文件<p> ?* 编写者 :luoc<p> ?* 编写日期 :2005-6-22<p> ?* 主要public成员变量:<p> ?* 主要public方法:?? <p> ?**/ ??public class XmlCreater { ????/** ?????*构造函数说明:?????? <p> ?????*参数说明:@param path? xml文件路径 <p> ????**/ ????public XmlCreater(String path) ????{ ????????this.path=path; ????????init(); ????} ??????????/** ????* 方法名称:init<p> ????* 方法功能: 初始化函数?????????? <p> ????* 参数说明: <p> ????* 返回:void <p> ????* 作者:luoc ????* 日期:2005-6-22 ????**/ ????private void init() ????{ ????????DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); ????????try ????????{ ????????????DocumentBuilder builder=factory.newDocumentBuilder(); ????????????doc=builder.newDocument();//新建DOM ????????}catch(ParserConfigurationException e) ????????{ ????????????logger.error("Parse DOM builder error:"+e); ????????} ????} ??????????/** ????* 方法名称:createRootElement<p> ????* 方法功能:创建根结点,并返回??????????? <p> ????* 参数说明:@param rootTagName <p> ????* 返回:Element <p> ????* 作者:luoc ????* 日期:2005-6-22 ????**/ ????public Element createRootElement(String rootTagName) ????{????? ????????if(doc.getDocumentElement()==null) ????????{ ????????????logger.debug("create root element '"+rootTagName+"' success."); ????????????Element root=doc.createElement(rootTagName); ????????????doc.appendChild(root); ????????????return root; ????????} ????????logger.warn("this dom's root element is exist,create fail."); ????????return doc.getDocumentElement(); ????} ??????????/** ????* 方法名称:createElement<p> ????* 方法功能:在parent结点下增加子结点tagName<p> ????* 参数说明:@param parent ????* 参数说明:@param tagName <p> ????* 返回:Element <p> ????* 作者:luoc ????* 日期:2005-6-22 ????**/ ????public Element createElement(Element parent,String tagName) ????{ ????????Document doc=parent.getOwnerDocument(); ????????Element child=doc.createElement(tagName); ????????parent.appendChild(child);???????? ????????return child; ????} ??????????/** ????* 方法名称:createElement<p> ????* 方法功能:在parent结点下增加值为value的子结点tabName<p> ????* 参数说明:@param parent ????* 参数说明:@param tagName ????* 参数说明:@param value <p> ????* 返回:Element <p> ????* 作者:luoc ????* 日期:2005-6-22 ????**/ ????public Element createElement(Element parent,String tagName,String value) ????{ ????????Document doc=parent.getOwnerDocument(); ????????Element child=doc.createElement(tagName); ????????XmlOper.setElementValue(child,value); ????????parent.appendChild(child); ????????return child; ????} ??????????/** ????* 方法名称:createAttribute<p> ????* 方法功能:在parent结点下增加属性 <p> ????* 参数说明:@param parent ????* 参数说明:@param attrName 属性名 ????* 参数说明:@param attrValue 属性值<p> ????* 返回:void <p> ????* 作者:luoc ????* 日期:2005-6-22 ????**/ ????public void createAttribute(Element parent,String attrName,String attrValue) ????{ ????????XmlOper.setElementAttr(parent,attrName,attrValue);???????? ????} ??????????/** ????* 方法名称:buildXmlFile<p> ????* 方法功能:根据DOM生成XML文件<p> ????* 参数说明: <p> ????* 返回:void <p> ????* 作者:luoc ????* 日期:2005-6-22 ????**/ ????public void buildXmlFile() ????{ ????????TransformerFactory tfactory=TransformerFactory.newInstance(); ????????try ????????{ ????????????Transformer transformer=tfactory.newTransformer(); ????????????DOMSource source=new DOMSource(doc); ????????????logger.debug("New DOMSource success."); ????????????StreamResult result=new StreamResult(new File(path)); ????????????logger.debug("New StreamResult success."); ????????????transformer.setOutputProperty("encoding","GBK"); ????????????transformer.transform(source,result); ????????????logger.debug("Build XML File '"+path+"' success."); ????????}catch(TransformerConfigurationException e) ????????{ ????????????logger.error("Create Transformer error:"+e); ????????}catch(TransformerException e) ????????{ ????????????logger.error("Transformer XML file error:"+e); ????????} ????} ??????????/** ?????* @return 返回 doc。 ?????*/ ????public Document getDoc() ????{ ????????return doc; ????} ????/** ?????* @param doc 要设置的 doc。 ?????*/ ????public void setDoc(Document doc) ????{ ????????this.doc = doc; ????} ????/** ?????* @return 返回 path。 ?????*/ ????public String getPath() ????{ ????????return path; ????} ????/** ?????* @param path 要设置的 path。 ?????*/ ????public void setPath(String path) ????{ ????????this.path = path; ????} ????/*全局变量*/ ????private Logger logger = Logger.getLogger(getClass().getName()); ????private Document doc=null;//新创建的DOM ????private String path=null;//生成的XML文件绝对路径 }