获得eclipse发布的web项目WEB-INFO下的路径(最淳朴的方法)

不解析,直接贴代码

public class TransformService {

	private Logger log = Logger.getLogger(TransformService.class);

	private final String TEMPLET = "templet";

	/**
	 * 转换类
	 * 
	 * @param xmlReq
	 * @param xslTempletName
	 * @return
	 */
	public String xmlTransform(String xmlReq, String xslTempletName) {
		// TODO Auto-generated method stub
		try {
			log.info("Para xml:" + xmlReq);
			log.info("Para xslTempletName:" + xslTempletName);
			Resource res = new ClassPathResource(TEMPLET + "/" + xslTempletName
					+ ".xsl");
			log.info("Templet URL:" + res.getFile() == null ? null : res
					.getFile().toString());
			Source templet = new StreamSource(res.getFile());
			Transformer transf = TransformerFactory.newInstance()
					.newTransformer(templet);
			Document req = DocumentHelper.parseText(xmlReq);
			Source xmlSource = new StreamSource(new StringReader(req.asXML()));
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			Result result = new StreamResult(baos);
			transf.setOutputProperty(OutputKeys.METHOD, "xml");
			transf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
			transf.setOutputProperty(OutputKeys.INDENT, "yes");
			transf.transform(xmlSource, result);
			ByteArrayInputStream bais = new ByteArrayInputStream(
					baos.toByteArray());
			String path = res.getFile().toString();
			String rPath = path.substring(0, path.lastIndexOf("classes"));
			File folder = new File(rPath + "xmlFolder");
			log.info("XML_FOLD_DIR:" + folder == null ? null : folder
					.toString());
			if (!folder.exists()) {
				folder.mkdir();
			}
			File file = new File(folder + File.separator + xslTempletName + "_"
					+ new Date().getTime() + ".xml");
			log.info("XML_FILE_URL:" + file == null ? null : file.toString());
			FileOutputStream fis = new FileOutputStream(file);
			fis.write(baos.toByteArray());
			fis.close();
			SAXReader sax = new SAXReader();
			Document resXML = sax.read(bais);
			log.info(resXML.asXML());
			System.out.println(resXML.asXML());
			return resXML.asXML();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			log.error(e.getMessage());
		} catch (TransformerConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			log.error(e.getMessage());
		} catch (TransformerFactoryConfigurationError e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			log.error(e.getMessage());
		} catch (TransformerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			log.error(e.getMessage());
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			log.error(e.getMessage());
		}
		return null;
	}

	public static void main(String[] args) {
		try {
			TransformService ts = new TransformService();
			Resource res = new ClassPathResource("templet/DY.xml");
			SAXReader sax = new SAXReader();
			Document resXML = sax.read(res.getFile());
			ts.xmlTransform(resXML.asXML(), "DY2HS");
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值