首页 > 解决方案 > 将 XML/XSLT 转换为 HTML

问题描述

我有以下来自 TNT 的 XML,我应该可以使用它来创建运输标签:

https://codebeautify.org/xmlviewer/cb55b98e

我收到了以下 XSL 文件:

https://express.tnt.com/expresswebservices-website/stylesheets/HTMLAddressLabelRenderer.xsl

我试图将它们与以下代码结合起来:

XmlWriterSettings settings = new XmlWriterSettings
        {
            OmitXmlDeclaration = true,
            ConformanceLevel = ConformanceLevel.Fragment,
            CloseOutput = false,
        };

        // populate the root element with the XML of the address label
        XElement root = new XElement("root", XElement.Parse(await _engine.GetDocument("GET_LABEL", code)));

        XDocument newTree = new XDocument();
        using (XmlWriter writer = XmlWriter.Create(newTree.CreateWriter(), settings))
        {
            XslCompiledTransform xslt = new XslCompiledTransform();
            XsltSettings trev = new XsltSettings
            {
                EnableDocumentFunction = true,
                EnableScript = true
            };
            xslt.Load(@"C:\Users\Trevo\Desktop\HTMLAddressLabelRenderer.xsl", trev, null);

            xslt.Transform(root.CreateReader(), writer);
            writer.Close();
            newTree.Save(@"C:\Users\Trevo\Desktop\result.html");
        }

HTML 仅包含 script 和 head 属性,正文完全为空。

我无法弄清楚为什么它不起作用。我认为“root”不是正确的 XName,但不确定如何计算它应该是什么。

任何帮助将不胜感激!

标签: c#xmlxslt

解决方案


  1. 试试这个freeformatter
  1. 对于 XML 输入,在第一行输入以下 xml,然后粘贴您的 xml 代码
<?xml version="1.0"?>
  1. 对于 XML 输出,只需粘贴您的 xsl 代码。

  2. 单击转换 XML。只需使用格式化程序,但它会给出 html 输出。


推荐阅读