之前內容請參看:好東西大家分享:java&xml的學習心得(1)
XMLToolTest.class實現了對xml文檔的操作。包括建立一個新xml document.檔結構及內容或從指定xml文件或的document.構和內容,output到指定的xml文件(或更新xml文件),獲取和設定指定節點名的指定屬性(或屬性列表),在指定節點添加子節點、刪除子節點、編輯子節點(先刪除在添加,待完善),支持在文檔中定位(下標定位,和查詢定位,如:定位到test節點的 name attribute的value="張治中"的節點,有簡單的復合查詢定位,暫時是全and的關系. :) ),定位后可以和全面的操作聯合使用(有點數據庫的影子,和自己想做的應用有關)。后來又根據它做了一個數據庫和xml對導的例子。代碼如下:
package com.ceic.workflow.xml.Tool;
import com.ceic.workflow.xml.*;
import org.w3c.dom.*;
/**
* Title: XML處理工具的 運算和實現部分的接口
* Description: XML處理工具的 運算和實現部分的接口
* Copyright: Copyright (c) 2003
* Company: 國電信息中心
* @author 張治中
* @version 1.0
* XML處理工具的 運算和實現部分 的接口
* XMLTool的實現子類,其中的XML解析器從XMLParserFactory中獲得.
* 沒有說明的方法和參數參見XMLTool接口.
*/
public class XMLToolTest implements XMLTool
{
PRivate XMLParser parser;
private String ParserType=
XMLParserFactory.getDefaultType();
private String ParserClassName="";
private int Index=0;
private String markName="";
private document.nbspdoc;
private int DefaultBegin=0;
private String encoding="UTF8";
private String filepath="";
private boolean EnableMakeUp=false;
private String header=" ";
public XMLToolTest()
{
}
public Object Build(String path, boolean vali)
{
if(path!=null&&path.length() >0){
parser=XMLParserFactory.getXMLParser
(ParserType,ParserClassName);
if(parser!=null){
doc=(document.parser.parse(path,vali);
filepath=path;
return doc;
}
}
return null;
}
public Object Build(String xmlString)
{
if(xmlString!=null&&xmlString.length() >0){
parser=XMLParserFactory.getXMLParser
(ParserType,ParserClassName);
if(parser!=null){
doc=(document.parser.parseString(xmlString);
filepath="";
return doc;
}
}
return null;
}
public void setdocument.ource(document.nbspdocs){
doc=docs;
}
public void setParser(String ParserName, String ClassName)
{
if(ParserName!=null&&ParserName.length() >0){
ParserType=ParserName;
ParserClassName=ClassName;
}
}
public void setProperty(String NodeName,String
propertyName,String value,boolean setall){
try{
NodeList list=doc.getElementsByTagName(NodeName);
if(list.getLength() >0&&value!=null&&value.length()>0)
{
if(setall){
for(int i=0;i
新聞熱點
疑難解答