Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 转换XML时路径异常中的非法字符_C#_Xml_Xslt_Transformation - Fatal编程技术网

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

C# 转换XML时路径异常中的非法字符,c#,xml,xslt,transformation,C#,Xml,Xslt,Transformation,我从一个文件加载XML,然后我想用XSLT将其转换为HTML。为此,我使用带有2个字符串的Transform重载作为参数,因此我将XML转换为字符串。(XSL正在工作-单独检查)。但是当我尝试运行它时,我在.Transform()方法的结果参数处遇到异常 XmlDocument xml = new XmlDocument(); XslCompiledTransform xsltTrans = new XslCompiledTransform(); string htmlResult = "tes

我从一个文件加载XML,然后我想用XSLT将其转换为HTML。为此,我使用带有2个字符串的Transform重载作为参数,因此我将XML转换为字符串。(XSL正在工作-单独检查)。但是当我尝试运行它时,我在
.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值
。那么如何解决非法字符的问题呢?

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

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

@Heslacher-啊,我现在明白了。谢谢。:)