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

本文关键字:非法 字符 异常 路径 XML 转换 | 更新日期: 2023-09-27 18:28:29

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

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。那么我该如何解决非法字符的问题呢?

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

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

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