看板 java 關於我們 聯絡資訊
先說推測的結論 1.4.2是不能用變形金剛...不對,是不能用XSL+XML+Transformer轉HTML的 可能他們認識的科博文還沒拍電影不夠威...不對,是版本舊可能不支援 以下是我的小實驗 代價是沒得睡 [程式碼(僅關鍵部分)] StreamSource xsl = new StreamSource("C:/test.xsl"); Transformer trans = TransformerFactory.newInstance().newTransformer(xsl); trans.transform(new StreamSource("C:/test.xml"), new StreamResult("C:/test.htm")); [test.xsl] <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> a<xsl:apply-templates/>a </xsl:template> </xsl:stylesheet> [test.xml] <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="test.xsl"?> <elements> <block>p</block> <block>h1</block> <block>h2</block> <block>h3</block> <block>h4</block> </elements> 在1.4.2_13底下 一定會有一些花花綠綠的例外跑出來例如以下幾行 javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: 文件根元件遺失。 at org.apache.xalan.processor.TransformerFactoryImpl. newTransformer(Unknown Source) at test0001a.Test0001a04.main(Test0001a04.java:20) 經過兩小時掙扎後 終於跑去裝JDK6 update 2 月蝕一換掉1.4.2_13改用1.6.0_02後 立刻正常的輸出xml出來 東西做出來都天亮...Orz 另外還有發現 好像java遇到比較奇怪的目錄也會有無法轉檔的問題 還在實驗中=x= --- 以下程式碼 StreamSource xsl = new StreamSource(fileXSL); StreamSource src = new StreamSource(fileXML.getAbsolutePath()); StreamResult res = new StreamResult(fileHTM.getAbsolutePath()); Transformer trans = null; trans = TransformerFactory.newInstance().newTransformer(xsl); trans.transform(src, res); 上面黃色標明的地方 StreamSource可傳入的除String Path外, 也可傳入File Path 可是不知道為什麼xsl的部分 只要傳String Path一定會出現重要錯誤 沒圖沒真相 以下兩張有跑的時候的情形 http://photo.xuite.net/mingray/1953109/1.jpg
http://photo.xuite.net/mingray/1953109/2.jpg
由圖中可以看到程式碼傳入一改, 程式立刻爛掉 似乎是蠻奇怪的情形 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.49.132
PsMonkey:之前測,xml 放在中文路徑會有問題 (@ JDK5.0) 08/29 13:59
※ 編輯: nosql 來自: 61.230.49.132 (08/29 14:21)
nosql:多增一些地方了, 不曉得jdk 1.5是否也是此情形, 懶得多裝了 08/29 14:21
teman:1.4版測試時 有用apache xalan嗎 jdk1.4預設可能沒納入支援 08/30 10:58
nosql:我用eclipse3.2去看,rt.jar裡面有org.apache.xalan存在 08/30 12:25
nosql:可是用org.apache.xpath.XPath的時候跟我說無法解析 08/30 12:38
nosql:xalan.processor.TransformerFactoryImpl.newTransformer 08/30 13:16
nosql:(Unknown Source) 另外還有這樣的錯誤 08/30 13:20
teman:試試看去抓apache xalan 新版的來跑跑 sample 08/30 18:38
teman:有時候jdk預設的api沒有包含完整或是使用版本有新舊問題 08/30 18:39
teman:我是直接用http://xml.apache.org/xalan-j/downloads.html 08/30 18:42
nosql:掛上Xerces-J-bin.2.9.0.zip之後的內容後似乎就可以跑@@a 08/31 02:54
nosql:看來真的是xerces API沒掛上去的問題 08/31 03:05