聽(tīng)
|
XMLBuilder.java
聽(tīng)鐢ㄤ簬鍒涘緩錛わ集錛紝Root緇撶偣
/********************************************************************
聽(tīng)* 欏圭洰鍚嶇О聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歳ochoc聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 鍖呭悕縐奧?聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歳ochoc.xml.oper聽(tīng)<p>
聽(tīng)* 鏂囦歡鍚嶇О聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歑mlBuilder聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 緙栧啓鑰?聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歭uoc聽(tīng)聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 緙栧啓鏃ユ湡聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛?005-6-22聽(tīng)聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 紼嬪簭鍔熻兘錛堢被錛夋弿榪奧狅細(xì)聽(tīng)鏍規(guī)嵁浼犲叆鐨刋ML鏂囦歡鐢熸垚Document鍜宺oot緇撶偣<p>
聽(tīng)*
聽(tīng)* 紼嬪簭鍙樻洿鏃ユ湡聽(tīng)聽(tīng)聽(tīng)錛?br />聽(tīng)* 鍙樻洿浣滆吢?tīng)聽(tīng)聽(tīng)聽(tīng)锛?xì)
聽(tīng)* 鍙樻洿璇存槑聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛?br />********************************************************************/
package rochoc.xml.oper;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.log4j.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
/**
聽(tīng)* 綾誨悕錛歑mlBuilder聽(tīng) <p>
聽(tīng)* 綾繪弿榪幫細(xì)鏍規(guī)嵁浼犲叆鐨刋ML鏂囦歡鐢熸垚Document鍜宺oot緇撶偣 <p>
聽(tīng)* 緙栧啓鑰?錛歭uoc<p>
聽(tīng)* 緙栧啓鏃ユ湡 錛?005-6-22<p>
聽(tīng)* 涓昏public鎴愬憳鍙橀噺錛?lt;p>
聽(tīng)* 涓昏public鏂規(guī)硶錛毬?tīng)?<p>
聽(tīng)**/
public class XmlBuilder
{
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) *鏋勯犲嚱鏁拌鏄庯細(xì)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <p>
聽(tīng)聽(tīng)聽(tīng)聽(tīng) *鍙傛暟璇存槑錛欯param path聽(tīng)聽(tīng) <p>
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public XmlBuilder(String path)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) this.path=path;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) init();
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歩nit<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氬垵濮嬪寲鍑芥暟<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛?<p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public void init()
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) buildDocument();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) buildRoot();
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歜uildDocument<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氬皢XML鏂囦歡鐢熸垚Document <p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛?<p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) private void buildDocument()
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) try
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DocumentBuilder builder=factory.newDocumentBuilder();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug("Construct document builder success.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) doc=builder.parse(new File(path));聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug("Build xml document success.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }catch(ParserConfigurationException e)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.error("Construct document builder error:"+e);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }catch(SAXException e)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.error("Parse xml file error:"+e);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }catch(IOException e)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.error("Read xml file error:"+e);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歜uildRoot<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氱敓鎴怷ML鐨勬牴緇撶偣<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛?<p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) private void buildRoot()
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) root=doc.getDocumentElement();
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) * @return 榪斿洖 doc銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)聽(tīng) public Document getDoc()
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return doc;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) * @param doc 瑕佽緗殑 doc銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)聽(tīng) public void setDoc(Document doc)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) this.doc = doc;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) * @return 榪斿洖 path銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)聽(tīng) public String getPath()
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return path;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) * @param path 瑕佽緗殑 path銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)聽(tīng) public void setPath(String path)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) this.path = path;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) * @return 榪斿洖 root銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)聽(tīng) public Element getRoot()
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return root;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) * @param root 瑕佽緗殑 root銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)聽(tīng) public void setRoot(Element root)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) this.root = root;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) /*鍏ㄥ眬鍙橀噺*/
聽(tīng)聽(tīng)聽(tīng) private String path=null;//xml鏂囦歡璺緞
聽(tīng)聽(tīng)聽(tīng) private Document doc=null;//xml鏂囦歡瀵瑰簲鐨刣ocument
聽(tīng)聽(tīng)聽(tīng) private Element root=null;//xml鏂囦歡鐨勬牴緇撶偣
聽(tīng)聽(tīng)聽(tīng) private Logger logger=Logger.getLogger(getClass().getName());
}
聽(tīng)
|
XmlOper.java
聽(tīng)鐢ㄤ簬鎿嶄綔錛革輯錛枃浠訛紝鍖呮嫭鏌ユ壘銆佹柊澧炪佸垹闄ゃ佷慨鏀圭粨鐐?/p>
聽(tīng)/********************************************************************
聽(tīng)* 欏圭洰鍚嶇О聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歳ochoc聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 鍖呭悕縐奧?聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歳ochoc.xml.oper聽(tīng)<p>
聽(tīng)* 鏂囦歡鍚嶇О聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歑mlOper聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 緙栧啓鑰?聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歭uoc聽(tīng)聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 緙栧啓鏃ユ湡聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛?005-6-22聽(tīng)聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 紼嬪簭鍔熻兘錛堢被錛夋弿榪奧狅細(xì)聽(tīng)瀵筙ML榪涜璇誨啓鎿嶄綔聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <p>
聽(tīng)*
聽(tīng)* 紼嬪簭鍙樻洿鏃ユ湡聽(tīng)聽(tīng)聽(tīng)錛?br />聽(tīng)* 鍙樻洿浣滆吢?tīng)聽(tīng)聽(tīng)聽(tīng)锛?xì)
聽(tīng)* 鍙樻洿璇存槑聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛?br />********************************************************************/
package rochoc.xml.oper;
import java.util.ArrayList;
import org.apache.log4j.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
聽(tīng)* 綾誨悕錛歑mlOper聽(tīng) <p>
聽(tīng)* 綾繪弿榪幫細(xì)瀵筙ML鏂囦歡榪涜璇誨啓鎿嶄綔,鍧囦負(fù)闈?rùn)鎬佸嚱鏁?<p>
聽(tīng)* 緙栧啓鑰?錛歭uoc<p>
聽(tīng)* 緙栧啓鏃ユ湡 錛?005-6-22<p>
聽(tīng)* 涓昏public鎴愬憳鍙橀噺錛?lt;p>
聽(tīng)* 涓昏public鏂規(guī)硶錛毬?tīng)?<p>
聽(tīng)**/
public class XmlOper
{
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) *鏋勯犲嚱鏁拌鏄庯細(xì)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <p>
聽(tīng)聽(tīng)聽(tīng)聽(tīng) *鍙傛暟璇存槑錛毬?tīng)?<p>
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) private XmlOper()
聽(tīng)聽(tīng)聽(tīng) {聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歡etNodeList<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氳幏鍙栫埗緇撶偣parent鐨勬墍鏈夊瓙緇撶偣<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param parent
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯return <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歂odeList <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public static NodeList getNodeList(Element parent)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return parent.getChildNodes();
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歡etElementsByName<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氬湪鐖剁粨鐐逛腑鏌ヨ鎸囧畾鍚嶇О鐨勭粨鐐歸泦聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param parent
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param name
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯return <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛欵lement[] <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public static Element [] getElementsByName(Element parent,String name)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ArrayList resList=new ArrayList();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) NodeList nl=getNodeList(parent);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) for(int i=0;i<nl.getLength();i++)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Node nd=nl.item(i);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(nd.getNodeName().equals(name))
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) resList.add(nd);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Element [] res=new Element [resList.size()];
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) for(int i=0;i<resList.size();i++)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) res[0]=(Element)resList.get(i);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug(parent.getNodeName()+"'s children of "+name+
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) "'s num:"+res.length);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return res;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歡etElementName<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氳幏鍙栨寚瀹欵lement鐨勫悕縐奧犅?tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)?<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param element
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯return <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歋tring <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public static String getElementName(Element element)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return element.getNodeName();
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歡etElementValue<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氳幏鍙栨寚瀹欵lement鐨勫?lt;p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param element
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯return <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歋tring <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public static String getElementValue(Element element)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) NodeList nl=element.getChildNodes();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) for(int i=0;i<nl.getLength();i++)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(nl.item(i).getNodeType()==Node.TEXT_NODE)//鏄竴涓猅ext Node
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug(element.getNodeName()+" has a Text Node.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return element.getFirstChild().getNodeValue();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.error(element.getNodeName()+" hasn't a Text Node.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return null;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歡etElementAttr<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氳幏鍙栨寚瀹欵lement鐨勫睘鎬ttr鐨勫悸?tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)?<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param element
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param attr
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯return <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歋tring <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public static String getElementAttr(Element element,String attr)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return element.getAttribute(attr);
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歴etElementValue<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氳緗寚瀹欵lement鐨勫悸?tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)?<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param element
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param val <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public static void setElementValue(Element element,String val)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Node node=element.getOwnerDocument().createTextNode(val);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) NodeList nl=element.getChildNodes();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) for(int i=0;i<nl.getLength();i++)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Node nd=nl.item(i);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(nd.getNodeType()==Node.TEXT_NODE)//鏄竴涓猅ext Node
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) nd.setNodeValue(val);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug("modify "+element.getNodeName()+"'s node value succe.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug("new "+element.getNodeName()+"'s node value succe.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) element.appendChild(node);聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歴etElementAttr<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氳緗粨鐐笶lement鐨勫睘鎬?lt;p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param element
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param attr
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param attrVal <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public static void setElementAttr(Element element,
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) String attr,String attrVal)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) element.setAttribute(attr,attrVal);
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歛ddElement<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氬湪parent涓嬪鍔犵粨鐐筩hild<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param parent
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param child <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public static void addElement(Element parent,Element child)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) parent.appendChild(child);
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歛ddElement<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氬湪parent涓嬪鍔犲瓧絎︿覆tagName鐢熸垚鐨勭粨鐐?lt;p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param parent
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param tagName <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public static void addElement(Element parent,String tagName)
聽(tīng)聽(tīng)聽(tīng) {聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Document doc=parent.getOwnerDocument();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Element child=doc.createElement(tagName);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) parent.appendChild(child);
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歛ddElement<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氬湪parent涓嬪鍔爐agName鐨凾ext緇撶偣錛屼笖鍊間負(fù)text<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param parent
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param tagName
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param text <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public static void addElement(Element parent,String tagName,String text)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Document doc=parent.getOwnerDocument();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Element child=doc.createElement(tagName);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) setElementValue(child,text);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) parent.appendChild(child);
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歳emoveElement<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氬皢鐖剁粨鐐筽arent涓嬬殑鍚嶇О涓簍agName鐨勭粨鐐圭Щ闄?lt;p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param parent
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param tagName <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public static void removeElement(Element parent,String tagName)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug("remove "+parent.getNodeName()+"'s children by tagName "+tagName+" begin...");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) NodeList nl=parent.getChildNodes();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) for(int i=0;i<nl.getLength();i++)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Node nd=nl.item(i);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(nd.getNodeName().equals(tagName))
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) parent.removeChild(nd);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug("remove child '"+nd+"' success.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug("remove "+parent.getNodeName()+"'s children by tagName "+tagName+" end.");
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /*鍏ㄥ眬鍙橀噺*/聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) static Logger logger=Logger.getLogger("XmlOper");
}
聽(tīng)
|
XmlCreater.java
聽(tīng)鐢ㄤ簬鍒涘緩錛革輯錛枃浠?/p>
/********************************************************************
聽(tīng)* 欏圭洰鍚嶇О聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歳ochoc聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 鍖呭悕縐奧?聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歳ochoc.xml.oper聽(tīng)<p>
聽(tīng)* 鏂囦歡鍚嶇О聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歑mlCreater聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 緙栧啓鑰?聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛歭uoc聽(tīng)聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 緙栧啓鏃ユ湡聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛?005-6-22聽(tīng)聽(tīng)聽(tīng)聽(tīng)<p>
聽(tīng)* 紼嬪簭鍔熻兘錛堢被錛夋弿榪奧狅細(xì)聽(tīng)鍒涘緩DOM騫剁敓鎴怷ML鏂囦歡聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <p>
聽(tīng)*
聽(tīng)* 紼嬪簭鍙樻洿鏃ユ湡聽(tīng)聽(tīng)聽(tīng)錛?br />聽(tīng)* 鍙樻洿浣滆吢?tīng)聽(tīng)聽(tīng)聽(tīng)锛?xì)
聽(tīng)* 鍙樻洿璇存槑聽(tīng)聽(tīng)聽(tīng)聽(tīng)錛?br />********************************************************************/
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;
/**
聽(tīng)* 綾誨悕錛歑mlCreater聽(tīng) <p>
聽(tīng)* 綾繪弿榪幫細(xì) 鍒涘緩DOM騫剁敓鎴怷ML鏂囦歡<p>
聽(tīng)* 緙栧啓鑰?錛歭uoc<p>
聽(tīng)* 緙栧啓鏃ユ湡 錛?005-6-22<p>
聽(tīng)* 涓昏public鎴愬憳鍙橀噺錛?lt;p>
聽(tīng)* 涓昏public鏂規(guī)硶錛毬?tīng)?<p>
聽(tīng)**/
public class XmlCreater
{
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) *鏋勯犲嚱鏁拌鏄庯細(xì)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <p>
聽(tīng)聽(tīng)聽(tīng)聽(tīng) *鍙傛暟璇存槑錛欯param path聽(tīng) xml鏂囦歡璺緞 <p>
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public XmlCreater(String path)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) this.path=path;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) init();
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歩nit<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛?鍒濆鍖栧嚱鏁奧犅?tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)?<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛?<p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) private void init()
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) try
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DocumentBuilder builder=factory.newDocumentBuilder();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) doc=builder.newDocument();//鏂板緩DOM
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }catch(ParserConfigurationException e)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.error("Parse DOM builder error:"+e);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歝reateRootElement<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氬垱寤烘牴緇撶偣錛屽茍榪斿洖聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param rootTagName <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛欵lement <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public Element createRootElement(String rootTagName)
聽(tīng)聽(tīng)聽(tīng) {聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(doc.getDocumentElement()==null)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug("create root element '"+rootTagName+"' success.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Element root=doc.createElement(rootTagName);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) doc.appendChild(root);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return root;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.warn("this dom's root element is exist,create fail.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return doc.getDocumentElement();
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歝reateElement<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氬湪parent緇撶偣涓嬪鍔犲瓙緇撶偣tagName<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param parent
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param tagName <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛欵lement <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public Element createElement(Element parent,String tagName)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Document doc=parent.getOwnerDocument();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Element child=doc.createElement(tagName);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) parent.appendChild(child);聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return child;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歝reateElement<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氬湪parent緇撶偣涓嬪鍔犲間負(fù)value鐨勫瓙緇撶偣tabName<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param parent
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param tagName
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param value <p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛欵lement <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public Element createElement(Element parent,String tagName,String value)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Document doc=parent.getOwnerDocument();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Element child=doc.createElement(tagName);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) XmlOper.setElementValue(child,value);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) parent.appendChild(child);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return child;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歝reateAttribute<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氬湪parent緇撶偣涓嬪鍔犲睘鎬?<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param parent
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param attrName 灞炴у悕
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛欯param attrValue 灞炴у?lt;p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public void createAttribute(Element parent,String attrName,String attrValue)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) XmlOper.setElementAttr(parent,attrName,attrValue);聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍚嶇О錛歜uildXmlFile<p>
聽(tīng)聽(tīng)聽(tīng) * 鏂規(guī)硶鍔熻兘錛氭牴鎹瓺OM鐢熸垚XML鏂囦歡<p>
聽(tīng)聽(tīng)聽(tīng) * 鍙傛暟璇存槑錛?<p>
聽(tīng)聽(tīng)聽(tīng) * 榪斿洖錛歷oid <p>
聽(tīng)聽(tīng)聽(tīng) * 浣滆咃細(xì)luoc
聽(tīng)聽(tīng)聽(tīng) * 鏃ユ湡錛?005-6-22
聽(tīng)聽(tīng)聽(tīng) **/
聽(tīng)聽(tīng)聽(tīng) public void buildXmlFile()
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) TransformerFactory tfactory=TransformerFactory.newInstance();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) try
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Transformer transformer=tfactory.newTransformer();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DOMSource source=new DOMSource(doc);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug("New DOMSource success.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) StreamResult result=new StreamResult(new File(path));
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug("New StreamResult success.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) transformer.setOutputProperty("encoding","GBK");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) transformer.transform(source,result);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.debug("Build XML File '"+path+"' success.");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }catch(TransformerConfigurationException e)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.error("Create Transformer error:"+e);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }catch(TransformerException e)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) logger.error("Transformer XML file error:"+e);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) * @return 榪斿洖 doc銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)聽(tīng) public Document getDoc()
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return doc;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) * @param doc 瑕佽緗殑 doc銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)聽(tīng) public void setDoc(Document doc)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) this.doc = doc;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) * @return 榪斿洖 path銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)聽(tīng) public String getPath()
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return path;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) /**
聽(tīng)聽(tīng)聽(tīng)聽(tīng) * @param path 瑕佽緗殑 path銆?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)聽(tīng) public void setPath(String path)
聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) this.path = path;
聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) /*鍏ㄥ眬鍙橀噺*/
聽(tīng)聽(tīng)聽(tīng) private Logger logger = Logger.getLogger(getClass().getName());
聽(tīng)聽(tīng)聽(tīng) private Document doc=null;//鏂板垱寤虹殑DOM
聽(tīng)聽(tīng)聽(tīng) private String path=null;//鐢熸垚鐨刋ML鏂囦歡緇濆璺緞
}