以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  (紧急求助,本人菜鸟)xml文件是不是太大(8M-9M),就无法套用xsl文件了  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=26502)


--  作者:学会上网
--  发布时间:1/16/2006 5:39:00 PM

--  (紧急求助,本人菜鸟)xml文件是不是太大(8M-9M),就无法套用xsl文件了
8M-9M大小的xml文件能否套用xsl,能不能转成html呢。各位大侠帮忙看先。谢谢。
--  作者:学会上网
--  发布时间:1/16/2006 5:51:00 PM

--  
米人理啊。
--  作者:Qr
--  发布时间:1/16/2006 6:27:00 PM

--  
这么大的数据啊。偶用4M的XML+XSL方式直接在IE中查看都困难,再转HTML,IE不死才怪。
--  作者:学会上网
--  发布时间:1/16/2006 11:07:00 PM

--  
HOHO,问题解决了,再大的文件也不怕了,打开的时候使用Opera浏览器,速度不是一般的快,没什么感觉就打开了。转的时候用的是微软的msxsl,转的也蛮快的。问题解决了,心情真是爽阿。娃哈哈。
--  作者:Qr
--  发布时间:1/17/2006 9:23:00 AM

--  
以下是引用学会上网在2006-1-16 23:07:00的发言:
HOHO,问题解决了,再大的文件也不怕了,打开的时候使用Opera浏览器,速度不是一般的快,没什么感觉就打开了。转的时候用的是微软的msxsl,转的也蛮快的。问题解决了,心情真是爽阿。娃哈哈。


说出来听听,让大家开开眼界。
--  作者:FocusBoy
--  发布时间:3/26/2006 10:39:00 PM

--  
郁闷...在IE上行吗?

--  作者:feirate
--  发布时间:3/27/2006 8:31:00 AM

--  
oprea好像不支持css..
--  作者:学会上网
--  发布时间:3/27/2006 5:22:00 PM

--  
IE不行的啊。Oprea完全可以。
要先用msxsl把xml文件套用xsl,大家可以上网搜索msxsl,还有使用说明。文件大,IE就撑爆了,但使用Oprea就没什么问题了。
具体操作我也忘记的差不多了。大概就这样。
--  作者:feirate
--  发布时间:3/28/2006 8:00:00 AM

--  
晕...很希望知道如何解决...

--  作者:学会上网
--  发布时间:3/28/2006 6:39:00 PM

--  
晕,算了,好人做到底。
MSXSL下载地址 不能下的话,自己在搜一下。
http://download.microsoft.com/download/f/2/6/f263ac46-1fe9-4ae9-8fd3-21102100ebf5/msxsl.exe
下好后
在window的命令行窗口中输入以下命令并且回车(自己注意路径)具体命令可以敲msxsl ?
msxsl -i e:\1.xml -s e:\1.xsl -o e:\1.html
或者
msxsl -i e:\1.xml e:\1.xsl e:\1.html
 
直接就可以输出了
另外opera应该是支持css的。我在使用中没有任何问题。


无意间搜索到的,大家也看下吧。
xml在asp.net页面中的多种展示方法   [ 2006-03-08 10:51 AM | 作者:lawdoor | 来自:本站原创]
  

XML已经被广泛应用在各个方面,但是在 .net应用中,页面展示的内容并不是很多。
XML在.net页面中的展示,这里我说的意思是,利用XML的多样性,在asp.net页面中展示多样性的图形、文本等。例如我们可以在.net页面中,展示丰富的数学公式、物理公式、特殊图形符号,表现为具有多重组合的多样式的显示内容。
在这里,介绍几种XML展示的内容。

方法一:直接向页面中写,让浏览器解释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在做深层次的转换过程中有缺陷,用专用工具就什么都可以转了。



W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
58.594ms