前幾天我剛剛瞭解了XSL和XSLT,現在我試圖基於我今天早些時候使用的question(希望在我的網站上顯示了格式化的XML)。需要幫助在ASP.NET MVC中執行從XML到HTML的XSL轉換
這是我想要的代碼(在視圖中):
XDocument xmlInput = XDocument.Parse(item.Action);
XDocument htmlOutput = new XDocument();
using (System.Xml.XmlWriter writer = xmlInput.CreateWriter())
{
// Load Transform
System.Xml.Xsl.XslCompiledTransform toHtml = new System.Xml.Xsl.XslCompiledTransform();
string path = HttpContext.Current.Server.MapPath("~/App_Data/xmlverbatimwrapper.xsl");
toHtml.Load(path);
// Execute
toHtml.Transform(xmlInput.CreateReader(), writer);
}
Response.Write(htmlOutput.ToString());
而且它給我這個錯誤:
[InvalidOperationException: This operation would create an incorrectly structured document.]
如果沿着正確的路線是不知道,但我已經嘗試修改編寫器設置,以便它可以生成零碎的xml文件,但沒有運氣(因爲它是隻讀的)。任何想法得到這個工作?也許我正在完全錯誤的做法? :)
感謝您的幫助!
我認爲有一種方法來設置作家的屬性,以便它會產生零碎的XML而不是一個完整的文檔,你認爲只是當前的一個設置將工作? – Evan 2010-08-11 17:06:13
對不起,這是我的知識領域的出路:-)嘗試一下,看看。您還應該單獨運行XSL轉換,將輸出寫入文件,並檢查輸出是否符合您的期望。 – 2010-08-11 18:11:29
請注意,您可以使用XmlOutputMethod枚舉和XmlWriterSettings對象將HTML指定爲輸出方法。爲此,您必須使用Create(...)靜態方法顯式創建編寫器,而不是從XDocument獲取編寫器。 – 2010-08-11 18:17:10