【问题标题】:Illegal characters in path exception when Transforming XML转换 XML 时路径异常中的非法字符
【发布时间】:2013-08-20 11:45:08
【问题描述】:

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

【问题讨论】:

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

标签: c# xml xslt transformation


【解决方案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;
}

【讨论】:

    猜你喜欢
    • 2022-12-17
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 2019-06-28
    • 2017-10-17
    • 1970-01-01
    相关资源
    最近更新 更多