How to convert XML to HTML with XSLT in C #?

How to convert XML to HTML with XSLT in ASP.NET Core?

I'm thinking of:

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

but XmlReader does not exist in .NET Core.

Do you have any ideas?

0
source share
1 answer

B .NET Core 1.0disappears .NET Core 1.0because XSD (XmlSchema)or is XSLT (XslTransform)not supported in .NET Standard 1.0, which .NET Coreimplements prior to .NET Core 2.0. The good news is that with.NET Core 2.0 it implements .NET Standard 2.0, therefore againSystem.Xml.Xsl .

standards, frameworks platforms, .NET Standard 2.0 !!!! . . NET. , .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;
}
0

Source: https://habr.com/ru/post/1674546/


All Articles