栏目分类
开源技术 | Hibernate | JUnit | Tomcat | JBoss | eclipse | Spring | ANT | Struts
java新手入门 | 基础入门 | 开发工具 | JDK | oop面向对象 | 安全配置
J2EE | mvcwea | 应用服务器 | Rmi/Corba/Jini | J2ee核心 | Servlet/JSP | EJB | JDBC/JDO
J2ME | 核心技术 | 嵌入式 | 无线开发
XML | WebServices | XMLBeans
高级技术 | 多线程 | 设计模式 | ULM/OO | p2p/Jxta | JavaSecurity
核心技术 | SwingAwtApplet | 高级编程 | 网络编程 | Jvm技术 | JavaMedia
其它技术 | 资讯动态
排行榜
·Java解析XML文档——dom解析xml
·Tomcat服务器Server.xml的关键参数配置
·jdom读数据库生成XML及读XML插入数据库
·Java中四种XML解析技术之不完全测试
·基于AJAX的动态树型结构的设计与实现
·javascript+xml实现二级下拉菜单一
·利用XMLBean轻轻松松读写XML
·javascript+xml实现二级下拉菜单二
·Java与XML(二)用Java编写XML的读写程序
·在springMVC框架中显示xml视图
·用Java生成XML
·Javascript+DOM访问XML文件数据实例
·Java与XML联合编程之DOM篇
·使用web.xml控制Web应用的行为二
·Java与XML结合使用的心得体会(三)
·用GlobusToolkit4(GT4)构建WEB服务
·分析如何用Eclipse进行XML开发
·关于HTTP及XMLHTTP状态代码一览
·如何使用JSTL标签做页面资源国际化
·AJAX:开发者新的技术天地介绍

    您现在的位置: Linux宝库 >> Java >> XML >> XMLBeans >> 文章正文
Java与XML结合使用的心得体会(二)
Linux宝库 收集整理  作者:Linux宝库  时间:2007-12-31  收藏本站
来自:http://doc.linuxpk.com/46179.html
联系:linuxmine#gmail.com
分类:[XMLBeans]
  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
  if(propertyName!=null&&propertyName.length()>0)

  

  {

  ((Element)list.item(i)).setAttribute

   (propertyName,value);

  }

  else{

  list.item(i).setNodevalue(value);

  }

  }

  }else{

  if(propertyName!=null&&propertyName.length()>0){

  if(NodeName.equals(markName)){

  ((Element)list.item(Index)).setAttribute

   (propertyName,value);

  }

  else{

  ((Element)list.item(DefaultBegin)).

  

  setAttribute(propertyName,value);

  }

  }else{

  if(NodeName.equals(markName)){

  list.item(Index).setNodevalue(value);

  }

  else{

  list.item(DefaultBegin).setNodevalue(value);

  }

  }

  }

  }

  }catch(Exception ee){

  System.out.println("设定"+NodeName+"节点的"+

  propertyName+"属性出错");

  }

  }

  public String getProperty(String NodeName,

  String propertyName)

  {

  try{

  NodeList list=doc.getElementsByTagName(NodeName);

  if(list.getLength() >0){

  if(propertyName!=null&&propertyName.length() >0){

  if(NodeName.equals(markName)){

  return ((Element)list.item(Index)).getAttribute

  

  (propertyName);

  }else{

  return ((Element)list.item(DefaultBegin)).

  

  getAttribute(propertyName);

  }

  }else{

  if(NodeName.equals(markName)){

  return ((Element)list.item(Index)).getNodevalue()

  }else{

  return ((Element)list.item(DefaultBegin)).

  

  getNodevalue()

  }

  }

  }

  return null;

  }catch(Exception ee){

  System.out.println("getProperty("+NodeName+","+

  propertyName+");出错"+ee.getMessage());

  return null;

  }

  }

  public String[] getPropertys(String NodeName,

  String propertyName)

  {

  try{

  String[] temp;

  NodeList list=doc.getElementsByTagName(NodeName);

  if(list.getLength() >0){

  if(propertyName!=null&&propertyName.length() >0){

  temp=new String[list.getLength()];

  for(int i=0;i
  temp[i]=((Element)list.item(i)).

  

  getAttribute(propertyName);

  }

  return temp;

  }else{

  temp=new String[list.getLength()];

  for(int i=0;i
  temp[i]=((Element)list.item(i)).getNodevalue()

  }

  return temp;

  }

  }

  return null;

  }catch(Exception ee){

  System.out.println("getPropertys("+NodeName+","+

  propertyName+");出错");

  return null;

  }

  }

  public String getParent(String returnAttr){

  String tempreturn="";

  String tempnode=markName

  int tempindex=Index

  NodeList list=doc.getElementsByTagName(markName);

  Node node=list.item(Index);

  if(returnAttr!=null&&returnAttr.length() >0){

  tempreturn=((Element)node.getParentNode()).

  getAttribute(returnAttr);

  }else{

  tempreturn=node.getParentNode().getNodevalue()

  }

  return tempreturn;

  }

  public void setFormat(String XMLToolName,

  String classname){}

  public void addNode(String parent, Node NodeName,

  boolean addall)

  {

  try{

  NodeList list=doc.getElementsByTagName(parent);

  if(list.getLength() >0){

  if(addall){

  for(int i=0;i
  int type=NodeName.getNodeType()

  switch(type){

  case Node.ATTRIBUTE_NODE: {

  ((Element)list.item(i)).setAttribute(((Attr)

  NodeName).getName() ,((Attr)NodeName).getvalue());

  }

  default:{

  list.item(i).appendChild(NodeName); 本文来自:http://doc.linuxpk.com/46179.html

 
     最新更新
·Java与XML(一)入门基础介绍
·Java技术与XML常见问题之JAX-RPC
·Java技术与XML常见问题之JAXM
·Java技术与XML常见问题之JAXR
·Java技术与XML常见问题之JAXB
·Java开发者XML基础全程详细讲解
·Java与XML结合使用的心得体会(三)
·Java与XML结合使用的心得体会(二)
·Java与XML结合使用的心得体会(一)
·API将XML数据绑定到Java对象
·Java、XML与数据库编程实践(一)
·Java、XML与数据库编程实践(二)
·Java、XML与数据库编程实践(三)
·Java技术与XML常见问题之一般问题
·Java技术与XML常见问题之JAXP
·简析JAVA的XML编程(给初学者们)
·平行世界:Java和XML为何将成功
·XML和Java:一个强大的组合
·从HTML到XML
·Java技术与XML常见问题
·创造一种迅速而又随性的XML解释器
·Java编程中更新XML文档的常用方法
·Digester解析XML文档Sample
·Castor--将Java对象和XML自动绑定的程序
·JSTL入门:访问SQL和XML内容
·从XML到Java代码的数据绑定之一
·从XML到Java代码的数据绑定之二
·Java编程中更新XML文档的常用方法
·Java、XML与数据库编程实践(四)
·如何轻松实现JavaBeans到XML的相互转换