1.12.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();
        }