转换XML时路径异常中的非法字符

时间:2013-08-20 11:45:08

标签: c# xml xslt transformation

我从一个文件加载XML,然后我想用XSLT将它转换为HTML。为此,我使用Transform的重载和2个字符串作为参数,因此我将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。那么如何用非法字符解决这个问题?

1 个答案:

答案 0 :(得分: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;
}