1.解析步骤
(1)取得xml文件的内容xmlContent(通过IO流或者由webservice得到应答字符串)
(2)根据xmlContent构造输入流xmlStream
InputStream xmlStream = new ByteArrayInputStream(xmlContent.getBytes("UTF-8");
(3)根据xsl文件的路径构造输入流xsltStream
InputStream xsltStream = new FileInputStream(xslFilePath);
(4)由xsltStream构造Source 对象xsltSource
Source xsltSource = new StreamSource(xsltStream);
(5)取得TransformerFactory的实例factory
TransformerFactory factory = TransformerFactory.newInstance();
(6)根据xsltSource,从factory 中构造Transformer 对象trans
Transformer trans = factory.newTransformer(xsltSource);
(7) 给xsl文件中传递参数(不是必须的)
trans.setParameter("参数名", 参数值);
trans.setOutputProperty(OutputKeys.ENCODING, "gbk");//加入这句可防止中文乱码
(8)开始xsl解析
result = new StreamResult(new ByteArrayOutputStream());
trans.transform(new StreamSource(xmlStream), result);
(9)得到xsl解析之后的字符串
result.getOutputStream().toString()
2.具体实例
(1)books.xml
(2)books.xsl
(3)XSLPractice.java
(4)将解析之后的字符串显示到jsp页面上:
编号 | 名称 | 数量 | 价格(元) | 出版时间 |
---|---|---|---|---|
1 | A | 10 | 15.20 | 2010-05-06 |
2 | B | 20 | 35.50 | 2010-08-01 |
3 | C | 30 | 32.00 | 2010-08-02 |
4 | D | 40 | 65.80 | 2010-08-06 |