有關XSLT輸出結果的4個技巧
發表時間:2023-08-08 來源:明輝站整理相關軟件相關文章人氣:
[摘要]最近,我發現在許多討論組中都問到一些如何在.NET平臺下處理XSLT轉換結果的問題,為了回答這些問題,本文將介紹幾種方法,這些方法均用到了System.Xml.Xsl命名空間下的XslTransfo...
最近,我發現在許多討論組中都問到一些如何在.NET平臺下處理XSLT轉換結果的問題,為了回答這些問題,本文將介紹幾種方法,這些方法均用到了System.Xml.Xsl命名空間下的XslTransform類。明確地說,我會介紹如何用StringWriter類、 XmlTextWriter類、 XmlReader類和 MemoryStream類來捕獲XSLT轉換結果。在理解了在這些不同類中的處理過程之后,你可以選擇一個最合適的用到你自己的程序中。
下面的例子會用到一個名為doc的XPathDocument類的實例(其中加載了需要轉換的XML文檔)和一個名為trans的XslTransform類的實例(負責執行從XML到HTML的轉換)。轉換的結果會被轉化成一個字符串類型,而且為了顯示和比較的目的,它將被寫進一個TextBox Web Server控件的Text屬性中去。生成XPathDocument類和XslTransform類的實例代碼如下所示:XPathDocument doc =
new XPathDocument(Server.MapPath
("XML/Customers.xml"));
XslTransform trans = new XslTransform();
trans.Load(Server.MapPath("XSLT/Customers.xslt"));
用StringWriter類處理XSLT結果
StringWriter類繼承了TextWriter抽象類中的功能,它使用方便,并能提供在幕后自動生成一個StringBuilder類的各種便利條件。StringBuilder類可以通過調用 ToString() 方法得到XSLT的轉換結果。
以下是一個將StringWriter類和XslTransform類結合使用的例子://************ StringReader XSLT Output Capture
StringWriter sw = new StringWriter();
trans.Transform(doc,null,sw);
/*
A StringBuilder class is automatically written to
by the StringWriter class. To get the value in
the StringBuilder you can use the ToString()
method as shown below
*/
this.txtStringBuilder.Text = sw.ToString();
sw.Close();