以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  怎么将现有的xslt作用于根据url得到的xml  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=69545)


--  作者:czq0119
--  发布时间:11/17/2008 9:26:00 PM

--  怎么将现有的xslt作用于根据url得到的xml
现在有一个写好的xslt,有一个url。如何实现将xslt作用于根据url得到的xml文档,最终生成一个 xml文档?
--  作者:hexun831012
--  发布时间:11/18/2008 11:45:00 AM

--  
xsl:import + document()
--  作者:Qr
--  发布时间:11/18/2008 12:02:00 PM

--  
dom的transformNodeToObject,这个只适合IE,其它浏览器也有相应的函数。
--  作者:czq0119
--  发布时间:11/18/2008 5:21:00 PM

--  
非常谢谢两位!
    我后来使用了一种方法,是可以用的,只是笨了点:
         
   首先,根据url得到xml 字符串。
   其次,把指令<?xml-stylesheet href="wfs.xsl" type="text/xsl" ?>加到xml 字符串中。
再次,将xml 字符串中转换成InputStream。
接着,将InputStream转换成Source。
再接着,将要转换的xml(现在Source),和xslt(现在Source)进行转换。
最后,输出结果。
String content = "";
String sCurrentLine = "";
try{     
   //首先,根据url得到xml 字符串。
   URL urlString = new URL(url);
   HttpURLConnection connection = (HttpURLConnection) urlString.openConnection();    
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));     
 while ((sCurrentLine = reader.readLine()) != null)  
 {  
  content += sCurrentLine;
 }
//其次,把指令<?xml-stylesheet href="wfs.xsl" type="text/xsl" ?>加到xml 字符串中。
 int indexNum = content.indexOf(">");
 sCurrentLine = "";
 sCurrentLine = content.substring(0, indexNum+1);
 sCurrentLine += "<?xml-stylesheet href=\"wfs.xsl\" type=\"text/xsl\"?>";
 sCurrentLine += content.substring(indexNum+1, content.length());
//再次,将xml 字符串中转换成InputStream。
 InputStream mm = new ByteArrayInputStream(sCurrentLine.getBytes());
   //接着,将InputStream转换成Source
Source xmlsource = new StreamSource(mm);
//再接着,将要转换的xml(现在Source),和xslt(现在Source)进行转换
     File xsltFile = new File(xslFile);
     Source xsltSource = new StreamSource(xsltFile);
     TransformerFactory transFact = TransformerFactory.newInstance();
     Transformer trans = transFact.newTransformer(xsltSource);
    //最后,输出结果
     StreamResult sr=new StreamResult(outputFile);
     trans.transform(xmlsource, sr);
}catch(Exception e){
     e.printStackTrace();
}

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms