我有一個XSLT文件導入,myxslt.xslt,包含進口,這看起來有點像這樣:加載XSLT與裝配在C#
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="someOtherXsltFile.xslt"/>
<!--Do some transformations -->
</xsl:stylesheet>
我試圖將這些文件導入到我的C#應用程序通過使用組件:
Assembly assembly = Assembly.GetExecutingAssembly();
using (Stream xsltStream = assembly.GetManifestResourceStream(mynamespace.myxslt.xslt))
{
using (XmlReader xsltReader = XmlReader.Create(xsltStream))
{
xslt.Load(xsltReader);
}
}
,因爲我在這個答案看到:Adding (Embedded Resource) Schema To XmlReaderSettings Instead Of Filename?
流,並負載的XmlReader罰款。
但是,當我嘗試加載xslt時,我的應用程序拋出無法找到文件異常。它無法加載的文件是someOtherXsltFile.xslt
。
這兩個文件都是作爲嵌入資源加載的,並且這兩個文件都在assembly.GetManifestResourceNames
的列表中可見。
我寧願不更改xslt文件中的任何內容,因爲這些文件是隨我嘗試轉換的消息一起提供的標準文件。
有沒有辦法使用程序集導入來加載我的xslt?
[This question](http://stackoverflow.com/questions/995591/how-to-resolve-xsl-includes-in-a-transformation-that-loads-xsl-from-a-string)可能是相應 – stuartd