方法一:直接向頁面中寫,讓浏覽器解釋XML語法
Response.Write("<?XML version='1.0'?>");
Response.Write("<?XML:stylesheet type='text/xsl' href='style/test2_xsl.xsl'?>");
Response.Write("<test name='考研' timing='90' score='100'>");
Response.Write("<section name='選擇題'>");
方法二:由.Net自己解釋並輸出顯示內容
XPathDocument doc=new XPathDocument(Server.MapPath("aa.XML"));
XslTransform transForm=new XslTransform();
transForm.Load(Server.MapPath("style/aa.xsl"));
FileStream fs=new FileStream(Server.MapPath("bb.XML"),FileMode.OpenOrCreate);
XPathNavigator nav=doc.CreateNavigator();
transForm.Transform(nav,null,fs);
fs.Close();
方法三:生成XML文件,讀取,由浏覽器解釋XML語法
略。我省略的原因是,把XML內容用文件操作寫入是非常簡單的。把已經生成的文件可以輕易的讀取出來然後用Response.Write()方法寫入頁面也是很簡單的。
方法四:用轉換工具轉換,然後讀取轉換工具的結果寫入頁面
微軟給我們提供了非常好的轉換工具,msxsl.exe可以搜索下,這是一個命令行下的轉換工具
Process myCmdProcess = new Process();
//當進程退出時要處理的代碼,注冊一個事件
myCmdProcess.Exited += new System.EventHandler(myCmdProcess_exited);
//要調用的應用程序cmd.exe
myCmdProcess.StartInfo.FileName = "cmd";
//將參數傳給要調用的應用程序 /C 執行字符串指定的命令然後終斷 ,調用ipconfig ,同時將ipconfig處理的結果輸出到應用程序文件夾下test.txt.
//此文件不存在,則自動創建
myCmdProcess.StartInfo.Arguments = @"/c D:\work\XMLtest\msxsl.exe D:\work\XMLtest\aa.xml D:\work\XMLtest\style\aa.xsl -o d:\work\xmltest\bb.XML";
myCmdProcess.StartInfo.RedirectStandardOutput = true;
myCmdProcess.EnableRaisingEvents = true;
myCmdProcess.StartInfo.UseShellExecute = false;
myCmdProcess.StartInfo.CreateNoWindow = false;
myCmdProcess.EnableRaisingEvents =true;
myCmdProcess.Start();
如果在應用程序中,可以使用事件判斷是否生成結束,如果在頁面中我試驗了很多次事件都不奏效,於是采用了非常呆的辦法 Thread.Sleep(1000); 雖然呆,不過奏效,哈哈。
生成了,把它讀出來就可以了,然後寫到頁面。
你是不是覺得我寫的這幾種方法沒多大區別?
其實,他們的區別很大,在使用的過程中我發現.net的XML展示很不完善,但是浏覽器卻很強任何轉換都可以自如實現。所以不要太依賴.Net,更多的考慮讓浏覽器做一部分工作才是真谛。
最後一種辦法可謂是完美的,因為.Net在做深層次的轉換過程中有缺陷,用專用工具就什麼都可以轉了。