我正在创建一个使用 XSLT 来转换传入 XML 消息的应用程序。我有多个 XSLT,其中一些包括其他 XSLT。
例如,B.XSLT 包括 A.XSLT,其中包含一些常用功能。
我已将所有 XSLT 标记为嵌入式资源,因此它将嵌入到可执行文件中。现在,当我使用以下代码加载 XSLT 时,
using (Stream objXSLTStream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("MyNamespace.XSLContainer.Transaction.B.xslt"))
{
using (XmlReader objXSLTReader = XmlReader.Create(objXSLTStream))
{
XslCompiledTransform objXSL = new XslCompiledTransform(true);
objXSL.Load(objXSLTReader);
XmlReader objXMLReader = XmlReader.Create(new StringReader(InputXML));
StringBuilder sbOutputXML = new StringBuilder();
XmlDocument docOutputXML = new XmlDocument();
XmlWriter objXMLWriter = XmlWriter.Create(new StringWriter(sbOutputXML));
objXSL.Transform(objXMLReader, ArgsList, objXMLWriter);
docOutputXML.LoadXml(sbOutputXML.ToString());
return docOutputXML;
}
}
它给了我错误
找不到路径“..\Bin_Folder_Location\General\A.xslt”的一部分。
在我的 XSLT B 中,我使用此语句包含 A.xslt
<xsl:include href ="../General/A.xslt"/>
任何人都可以建议我将嵌入式 xslt 包含到 C# 中的另一个 xslt 中的正确解决方法吗?