0
對於我的項目,我有一個包含xsl文件的包(xml)。 當我需要一個我剛剛得到與文件:如何在java包中使用xsl引用文檔
String xsl=getTextResource(this,"../xml/rob.xsl");
和改造工作正常
TransformerFactory tFactory=getTransformerFactory();
Transformer transformer=tFactory.newTransformer(xslSource);
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
if(xslParameters !=null) {
for(Parameter p:xslParameters) {
transformer.setParameter(p.getName(), p.getStringValue());
}
}
result=XMLHelper.createDocument();
DOMResult resultStream=new DOMResult(result);
transformer.transform(xmlSource, resultStream);
但是我的問題與報表出現了:
<xsl:param name="matcherPath">.</xsl:param>
<xsl:param name="parameterPath" select="concat($matcherPath,'/','rob_parameters.xml')" />
<xsl:variable name="zuordnungsTabelle" select="document(concat($matcherPath,'/','rob_matcher.xml'))" />
<xsl:variable name="parameterTabelle" select="document($parameterPath)" />
變壓器在文件系統中搜索,但不在類文件中搜索。所以無法找到文件。
轉換器是否有可能尋找包中的其他文件而不是文件系統中的其他文件?
貫徹/套https://docs.oracle.com/javase/7/docs/api/javax/xml/transform/Transformer.html #setURIResolver(javax.xml.transform.URIResolver)確保相對URI解析爲從包中讀取而不是從文件系統中讀取。 –