這裡介紹一個小技巧來使WebBrowser Control能夠很好的展示一個XML檔案。需要準備的材料有:
a. 樣式化檔案defaultss.xslt, 這個是IE瀏覽器預設用於轉換XML到XHTML的檔案。
b.一個測試工程,需要加入一個WebBrowser Control對象到工程。
我們按下面步驟來完成這個實驗:
1. 將defaultss.xslt添加到測試工程中
2. 在屬性中設定defaultss.xslt的Build Action = Embedded Resource.
3. 擴充一個類名為WebBrowserEx類從WebBrowser
Code
class WebBrowserEx : WebBrowser
4. 從資源中載入defaultss.xslt到WebBrowserCode
Assembly asmb = System.Reflection.Assembly.GetExecutingAssembly();
Stream s = asmb.GetManifestResourceStream( asmb.GetName().Name + "." + m_xsltFile);
XmlReader xr = XmlReader.Create(s);
5. 最後通過XslCompiledTransform的Transform方法來轉換XML到XHTML
下面是完整的代碼Code
class WebBrowserEx : WebBrowser
{
private string m_xsltFile = "defaultss.xslt";
public XmlDocument DocumentXml
{
set
{
Assembly asmb = System.Reflection.Assembly.GetExecutingAssembly();
Stream s = asmb.GetManifestResourceStream( asmb.GetName().Name + "." + m_xsltFile);
XmlReader xr = XmlReader.Create(s);
XslCompiledTransform xct = new XslCompiledTransform();
xct.Load(xr);
StringBuilder sb = new StringBuilder();
XmlWriter xw = XmlWriter.Create(sb);
xct.Transform(value, xw);
this.DocumentText = sb.ToString();
}
}
public string XmlStyleTranferFile
{
set { m_xsltFile = value; }
}
}
defaultss.xslt下載。
聲明:這個檔案是從網上找來的,不保證檔案著作權的合法性,請不要在商業軟體中使用它。