的System.Xml.Xsl
消失.NET Core 1.0
作爲XSD (XmlSchema)
或XSLT (XslTransform)
在.NET Standard 1.0
不被支持,其中.NET Core
實現直到版本」 .NET核2.0' 。 好消息是,自.NET Core 2.0
它實現了.NET Standard 2.0
,所以我們有System.Xml.Xsl
再次。
如果您正在使用所有這些standards
,frameworks
和 platforms
迷茫,看在這個崗位.NET Standard 2.0 is out and it’s impressive!!!!視頻,看到了.NET Standard Versions表 瞭解平臺實現什麼每一個新的支持.NET是什麼標準,什麼版。
因此,要回答你的問題,您需要將您.NET Core
應用程序升級到.NET Core 2.0
和您的代碼將重新工作。
public static string TransformXMLToHTML(string inputXml, string xsltString)
{
XslCompiledTransform transform = new XslCompiledTransform();
using(XmlReader reader = XmlReader.Create(new StringReader(xsltString))) {
transform.Load(reader);
}
StringWriter results = new StringWriter();
using(XmlReader reader = XmlReader.Create(new StringReader(inputXml))) {
transform.Transform(reader, null, results);
}
return results.ToString();
}
如果您需要返回XDocument
您可以在下面的代碼,它類似於你的,只是返回「XML」文件的實例:
public XDocument Transform(string xml, string xsl)
{
var originalXml = XDocument.Load(new StringReader(xml));
var transformedXml = new XDocument();
using (var xmlWriter = transformedXml.CreateWriter())
{
var xslt = new XslCompiledTransform();
xslt.Load(XmlReader.Create(new StringReader(xsl)));
// Add XSLT parameters if you need
XsltArgumentList xsltArguments = null; // new XsltArgumentList();
// xsltArguments.AddParam(name, namespaceUri, parameter);
xslt.Transform(originalXml.CreateReader(), xsltArguments, xmlWriter);
}
return transformedXml;
}