2017-04-10 17 views
0

ASP.NETコアでXSLTを使用してXMLをHTMLに変換するにはどうすればよいですか?C#でXSLTを使用してXMLをHTMLに変換する方法は?

私は考えた:

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(); 
} 

が、XmlReaderのは、.NETのコアには存在しません。

ご存知ですか? System.Xml.Xsl

答えて

0

はバージョン」.NETコア2.0' まで実装する.NET Core.NET Standard 1.0でサポートされていないXSD (XmlSchema)又はXSLT (XslTransform)として.NET Core 1.0に消失しました。 .NET Core 2.0.NET Standard 2.0を実装しているので、System.Xml.Xsl,です。

あなたはこれらのstandardsframeworksplatformsのすべてと混同されている場合は、この記事.NET Standard 2.0 is out and it’s impressive!!!!でビデオを見て、.NET Standard Versionsテーブル は、プラットフォームは、それぞれの新しいでサポートされているもの、.NETの標準とどのような実装を理解するために見ますバージョン。あなたは.NET Core 2.0にご.NET Coreアプリをアップグレードする必要が

だから、あなたの質問に答えるために、あなたのコードが再び動作します。

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; 
} 
関連する問題