文档中心 > API文档

1.11.3.3. 导出指定文档

在docFile.jsp中添加

    <%@page import=”com.seeyon.v3x.services.document.DocumentFactory,com.seeyon.v3x.services.document.impl.DocumentManager”%>

在docFlie.jsp文件中添加逻辑代码,在这里我们采用java.io.StringWriter接受导出的文件用saveToPropertyList().saveXMLToStream(StringWriter sw)方法。

    if (thirdMenuIds != null && thirdMenuIds.length() > 0) {
             String thirdIds[] = thirdMenuIds.split(",");
             try {
                 DocumentFactory factory = DocumentManager.getInstance();
                 for (int i = 0; i < thirdIds.length; i++) {
                     ArcFolderItem doc = factory.exportArchive(Long
                             .valueOf(thirdIds[i]));
                     StringWriter sw = new StringWriter();
                     doc.saveToPropertyList().saveXMLToStream(sw);
                     // 将导出的XML调用第三方系统的接口,导入到第三方档案系统
                 }
             } catch (Exception e) {
                 System.out.println("出异常了");
             }
         }

将导出的xml文件输出到指定的外部文件中,用org.dom4j.io.XMLWriter写到文件中,也可用其他方式写文件。在import中增加

    org.dom4j.io.*,

在for循环前面添加代码:

    XMLWriter output=new XMLWriter(new FileWriter("d:/aaa.xml"));
     output.setEscapeText(false);//设置后可以防止导出后的文件将“<”和“>”改成“&lt”和“&gt”
     String version="<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>";
     output.write(version)

for循环中添加

    output.write(sw);

for循环后面添加

    output.close();

添加后的效果如下:

        try {
             com.seeyon.v3x.services.document.DocumentFactory factory = com.seeyon.v3x.services.document.impl.DocumentManager
                     .getInstance();
             XMLWriter output = new XMLWriter(new FileWriter("d:/aaa.xml"));
             output.setEscapeText(false);
             String version = "<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>";
             output.write(version);
             for (int i = 0; i < thirdIds.length; i++) {
                 ArcFolderItem doc = factory.exportArchive(Long
                         .valueOf(thirdIds[i]));
                 StringWriter sw = new StringWriter();
                 doc.saveToPropertyList().saveXMLToStream(sw);
                 output.write(sw.toString());
             }
             output.close();
         } catch (Exception e) {
             e.printStackTrace();
         }