2

我正在从文件加载 XML,然后我想用 XSLT 将它转换为 HTML。为此,我使用带有 2 个字符串作为参数的 Transform 的重载,因此我将 XML 转换为字符串。(XSL 正在工作 - 单独检查)。但是当我尝试运行它时 - 我在方法的result参数处遇到异常.Transform()

XmlDocument xml = new XmlDocument();
XslCompiledTransform xsltTrans = new XslCompiledTransform();
string htmlResult = "test";
string xmlContents;

private string getXMLAsString(XmlDocument myxml)
{

    StringWriter sw = new StringWriter();
    XmlTextWriter tx = new XmlTextWriter(sw);
    myxml.WriteTo(tx);

    string str = sw.ToString();
    return str;
} 

public String getHTMLresult()
{
    xml.Load(@"L:\ProjectGroup\GK\XML documents\Parent-Child.xml");
    xmlContents = getXMLAsString(xml);
    xsltTrans.Load(@"L:\ProjectGroup\GK\XML documents\blah.xsl");
    xsltTrans.Transform(xmlContents, htmlResult); 
    return htmlResult;
}

是因为htmlResult已经有价值了吗?但是,如果我将其留空,或者将其设置为null我得到异常null values are not allowed。那么如何用非法字符解决这个问题呢?

4

1 回答 1

1

这是尽可能短的版本,请尝试:

XslCompiledTransform xsltTrans = new XslCompiledTransform();
string htmlResult;
string xmlContents = @"L:\ProjectGroup\GK\XML documents\Parent-Child.xml";

public String getHTMLresult()
{
    xsltTrans.Load(@"L:\ProjectGroup\GK\XML documents\blah.xsl");
    StringWriter sw = new StringWriter();
    XmlTextWriter xw = new XmlTextWriter(sw);
    xsltTrans.Transform(xmlContents, null, xw);
    htmlResult = sw.ToString();
    return htmlResult;
}
于 2013-08-21T07:31:15.013 回答