struts开发实践—读写xml实例(上)

原创 2004年04月13日 14:13:00

 struts开发实践读写xml实例<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1   准备工作:去java.sun.com下载org.w3c.dom包,将下载的包放在WEB-INF/lib目录下。包的文档说明:http://java.sun.com/xml/jaxp/dist/1.1/docs/api/org/w3c/dom/package-summary.html

2   本案主要功能是完成table的表头显示字段的设置。

文件包括:

1 print.xml:将字段属性写入xml文件(放入web-inf目录下)

2 ReadWritePrintXML.java print.xml的接口类:

3 PrintReadAction.java print.xmlAction

4PrintSetAction.javaprint.xmlAction

5) PrintFormprint选择的对象ActionForm

/***********print.xml代码begin*********************************/

<?xml version="1.0" encoding="UTF-8" ?>

<TBL_EMPLOYEE>

- <Field fieldName="employeeId" printName="职工ID">

  <ifPrint>0</ifPrint>

  </Field>

- <Field fieldName="employeeBasicInfo.deptName" printName="部门">

  <ifPrint>1</ifPrint>

  </Field>

............//省略

  </TBL_EMPLOYEE>

/****************print.xml代码end*****************************/

/******************PrintForm.java Begin************************/

package test;

import org.apache.struts.action.*;

import javax.servlet.http.*;

/** * 打印form */

public class PrintForm extends ActionForm {

  /**字段名*/

  private String fieldName="";

  /**打印名*/

  private String printName="";

  /**是否打印*/

  private int ifPrint=0;

  public void setFieldName(String fieldName) {

    this.fieldName = fieldName;

  }

  public String getFieldName() {

    return fieldName;

  }

  public void setPrintName(String printName) {

    this.printName = printName;

  }

  public String getPrintName() {

    return printName;

  }

  public void setIfPrint(int ifPrint) {

     this.ifPrint = ifPrint;

   }

   public int getIfPrint() {

     return ifPrint;

   }

  public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {

    /**@todo: finish this method, this is just the skeleton.*/

    return null;

  }

  public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {

  }

}

/****************printForm.java代码end******************************/

/***********ReadWritePrintXML.java代码Begin**************************/

package test;

import java.io.*;

import java.util.*;

import javax.xml.parsers.*;

import org.w3c.dom.*;

import org.apache.crimson.tree.XmlDocument;

import javax.xml.transform.*;

import javax.xml.transform.dom.DOMSource;

import javax.xml.transform.stream.StreamResult;

/**

 * 读写printxml

 */

public class ReadWritePrintXML {

  /**

   * printxml

   * @param path:the path of xml put in

   * @return

   * @throws Exception

   */

  public ArrayList readXMLFile(String path) throws Exception {

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

    DocumentBuilder db = null;

    ArrayList list = new ArrayList();

    String[] data = null;

    try {

      db = dbf.newDocumentBuilder();

    }

    catch (ParserConfigurationException pce) {

      pce.printStackTrace();

    }

    Document doc = null;

    try {

      doc = db.parse(path);

    }

    catch (DOMException dom) {

      dom.printStackTrace();

    }

    catch (IOException ioe) {

      ioe.printStackTrace();

    }

    Element root = doc.getDocumentElement();

    NodeList fields = root.getElementsByTagName("Field");

    for (int i = 0; i < fields.getLength(); i++) {

      Element field = (Element) fields.item(i);

      PrintSelectForm printSelectForm = new PrintSelectForm();

      printSelectForm.setFieldName(field.getAttribute("fieldName"));

      printSelectForm.setPrintName(field.getAttribute("printName"));

      NodeList datas = field.getElementsByTagName("ifPrint");

      if (datas.getLength() == 1) {

        Element e = (Element) datas.item(0);

        Text t = (Text) e.getFirstChild();

        printSelectForm.setIfPrint(t.getNodeValue());

      }

      list.add(printSelectForm);

    }

    return list;

  }

  /**

   * xml

   * @param select:the selected id you set

   * @param path:the path of xml put in

   * @throws Exception

   */

  public void writeXMLFile(String[] select, String path) throws Exception {

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

    DocumentBuilder db = null;

    try {

      db = dbf.newDocumentBuilder();

    }

    catch (ParserConfigurationException pce) {

      pce.printStackTrace();

    }

    Document doc = null;

    try {

      doc = db.parse(path);

    }

    catch (DOMException dom) {

      dom.printStackTrace();

    }

    catch (IOException ioe) {

      ioe.printStackTrace();

    }

    Element root = doc.getDocumentElement();

    NodeList fields = root.getElementsByTagName("Field");

    for (int j = 0; j < select.length; j++) {

      for (int i = 0; i < fields.getLength(); i++) {

        Element field = (Element) fields.item(i);

        if (field.getAttribute("fieldName").equals(select[j])) {

          NodeList ifPrints = field.getElementsByTagName("ifPrint");

          if (ifPrints.getLength() == 1) {

            Element e = (Element) ifPrints.item(0);

            Text t = (Text) e.getFirstChild();

            t.setNodeValue("1");

          }

        }

      }

    }

    TransformerFactory tFactory = TransformerFactory.newInstance();

    Transformer transformer = tFactory.newTransformer();

    DOMSource source = new DOMSource(doc);

    StreamResult result = new StreamResult(new java.io.File(path));

    transformer.transform(source, result);

  }

  /**

   * 初始化xml

   * @param path:the path of xml

   * @throws Exception

   */

  public void initialXMLFile(String path) throws Exception {

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

    DocumentBuilder db = null;

    try {

      db = dbf.newDocumentBuilder();

    }

    catch (ParserConfigurationException pce) {

      pce.printStackTrace();

    }

    Document doc = null;

    try {

      doc = db.parse(path);

    }

    catch (DOMException dom) {

      dom.printStackTrace();

    }

    catch (IOException ioe) {

      ioe.printStackTrace();

    }

 

    Element root = doc.getDocumentElement();

    NodeList fields = root.getElementsByTagName("Field");

    for (int i = 0; i < fields.getLength(); i++) {

      Element field = (Element) fields.item(i);

      NodeList ifPrints = field.getElementsByTagName("ifPrint");

      if (ifPrints.getLength() == 1) {

        Element e = (Element) ifPrints.item(0);

        Text t = (Text) e.getFirstChild();

        t.setNodeValue("0");

      }

    }

    TransformerFactory tFactory = TransformerFactory.newInstance();

    Transformer transformer = tFactory.newTransformer();

    DOMSource source = new DOMSource(doc);

    StreamResult result = new StreamResult(new java.io.File(path));

    transformer.transform(source, result);

  }

}

 

 

struts开发实践—读写xml实例

--文章源自一位网友这篇文章是一个叫smilelily网友写的,昨天找自己的email记录找到了,他在csdn上有用户,文章源地址 http://dev.csdn.net/user/smilelily...
  • iwo99
  • iwo99
  • 2004年10月10日 08:56
  • 1327

struts开发实践—读写xml实例

struts开发实践—读写xml实例--文章源自一位网友struts开发实践—读写xml实例1.   准备工作:去java.sun.com下载org.w3c.dom包,将下载的包放在WEB-INF/l...
  • lanlansky
  • lanlansky
  • 2005年01月12日 22:33
  • 687

struts开发实践—读写xml实例(下)

 struts开发实践—读写xml实例(下)继续代码实例:/************PrintReadAction.java代码Begin****************************/pa...
  • smilelily
  • smilelily
  • 2004年04月13日 14:13
  • 782

struts读写xml实例

1.   准备工作:去java.sun.com下载org.w3c.dom包,将下载的包放在WEB-INF/lib目录下。包的文档说明可以参考http://java.sun.com/xml/jaxp/d...
  • mandymai
  • mandymai
  • 2009年08月24日 14:11
  • 324

struts开发实践—柱形图实例

--文章源自一位网友这篇文章是一个叫smilelily网友写的,昨天找自己的email记录找到了,他在csdn上有用户,文章源地址 http://dev.csdn.net/user/smilelily...
  • iwo99
  • iwo99
  • 2004年10月10日 09:00
  • 1508

struts开发实践—曲线图实例

--文章源自一位网友这篇文章是一个叫smilelily网友写的,昨天找自己的email记录找到了,他在csdn上有用户,文章源地址 http://dev.csdn.net/user/smilelily...
  • iwo99
  • iwo99
  • 2004年10月10日 08:59
  • 1513

struts开发实践-柱形图、饼状图实例

 struts开发实践-柱形图、饼状图实例本案主要功能是完成柱形图、饼状图的绘制,并将柱形图、饼状图生成jpg图形并显示。1。调用的主要函数说明:请参考曲线图部分的说明2。曲线图绘制文件/******...
  • smilelily
  • smilelily
  • 2004年04月13日 14:14
  • 1045

struts开发实践—实用小贴士(上)

一、struts使用小贴士(mainly from《struts in action》)1. 在actionForm中使用array以匹配重复的变量。例如在使用multibox时,相对应的可以在for...
  • smilelily
  • smilelily
  • 2004年04月12日 12:27
  • 775

struts开发实践—实用小贴士(上)

一、struts使用小贴士(mainly from《struts in action》)1. 在actionForm中使用array以匹配重复的变量。例如在使用multibox时,相对应的可以在for...
  • arielxp
  • arielxp
  • 2004年06月27日 18:53
  • 3686

Qt使用流方式 读写xml文件

SAX方式 使用SAX方法来解析XML文档比使用DOM方法要清晰很多,更重要的是它的效率要高很多,不过SAX方法只适用于读取XML文档。 一、包含的基本头文件 #include 二、基本操作...
  • menghaibin2009
  • menghaibin2009
  • 2013年09月02日 13:17
  • 1777
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts开发实践—读写xml实例(上)
举报原因:
原因补充:

(最多只允许输入30个字)