2013-08-20 51 views
2

我從文件中加載XML,然後我想用XSLT將其轉換爲HTML。爲此,我使用2個字符串作爲參數的變換重載,因此我將XML編碼爲字符串。 (XSL正在工作 - 單獨檢查)。但是當我嘗試運行它時 - 我在.Transform()方法的result參數中得到了例外。轉換XML時路徑異常中的非法字符

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。那麼我怎樣才能解決這個問題與非法字符?

+0

@Heslacher - 啊,我現在明白了。謝謝。 :) – Syspect

回答

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; 
} 
相關問題