亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Java 中使用 .sef 文件運行 XSLT 轉換

如何在 Java 中使用 .sef 文件運行 XSLT 轉換

富國滬深 2023-06-08 13:53:27
我需要使用XSL轉換 XML 文件,其中包括多個導入。一個簡單的轉換就可以正常工作(即使使用導入),但這并不是我真正想要的,因為每個轉換甚至有超過 20 個導入文件。(我現在正在使用javax.xml.transform,在我使用之前net.sf.saxon.s9api。)我用Oxygen XML Editor編譯了XSLT并得到了一個SEF文件。它應該已經包含所有文件,現在我收到以下錯誤:Error at package on line 2 column 321 of file.sef.xml:? XTSE0150: The supplied file does not appear to be a stylesheetjavax.xml.transform.TransformerConfigurationException: Failed to compile stylesheet. 1 error detected.我認為問題是它正在嘗試編譯已編譯的文件,但我該如何解決呢?這是我現在擁有的基本代碼:public String transform(File xslt, String xml) throws TransformerException {? ? TransformerFactory tFactory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl", null);? ? Transformer transformer = tFactory.newTransformer(new StreamSource(xslt));? ? final StringWriter writer = new StringWriter();? ? StreamResult standardResult = new StreamResult(writer);? ? transformer.transform(new StreamSource(new StringReader(xml)), standardResult);? ? return writer.toString();}
查看完整描述

1 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

Saxon 9.9 應該在所有接受源樣式表的地方都接受 SEF 文件。事實上,我剛剛確認您的代碼確實接受 9.9 中的 SEF 文件。但 9.8 并非如此,因此首先要檢查 Saxon 版本。

還有一種可能是,用于創建 SEF 文件的 oXygen 版本與您用來加載和執行它的 Saxon 版本之間存在一些版本不兼容。


查看完整回答
反對 回復 2023-06-08
  • 1 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號