|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
专业性的服务。有的ASP商提供垂直型的应用服务,针对某一特定行业提供应用服务。编码|服务器|历程|办理|成绩 Xslt文件编写学会今后,在真实的使用中,我还必要使用转换引擎,举行文件的转换。Xslt转换,一样平常来讲分为服务器端转换和客户端转换。服务器端转换,也就是说用asp/jsp代码举行Xslt转换,如许发给用户客户真个是格局化好的Html文件(在Atom2Rss内里是Xml文件。)。客户端转换,是间接发给用户客户端Xml文件,由客户端举行转换,如许就必要客户端撑持Xml尺度。今朝真正完全撑持Xml尺度的Ie6,Mozilla,而今朝另有良多用户还在利用Ie5,乃至是Ie4,大概是其他的不撑持Xml的扫瞄器。以是,在良多时分,我们必要举行服务器真个转换。
程序代码很复杂,上面代码来自Msdn,被我由VbScript代码改成了Asp代码:
Dimxslt,xslDoc,xmlDoc,xslProc
Setxslt=Server.CreateObject("Msxml2.XSLTemplate")
SetxslDoc=Server.CreateObject("Msxml2.FreeThreadedDOMDocument")
SetxmlDoc=Server.CreateObject("Msxml2.DOMDocument")
SetxslProc=Server.CreateObject("IXSLProcessor")
xslDoc.async=False
xslDoc.resolveExternals=False
xslDoc.load"sample.xsl"
Setxslt.stylesheet=xslDoc
xmlDoc.async=False
xmlDoc.resolveExternals=False
xmlDoc.load"books.xml"
SetxslProc=xslt.createProcessor()
xslProc.input=xmlDoc
xslProc.addParameter"param1","Hello"
xslProc.Transform
Response.writexslProc.output
这个代码很复杂也很简单看懂,可是在我真正使用的时分发明一个很疾苦的成绩,就是我的Xml文件编码是GB2312,我的Xslt文件编码是GB2312,并且在Xslt内里也设定了输入的Xml文件的编码是GB2312,可是天生的文件的编码倒是UTF-16。如许就形成了我的文件编码毛病,在IE内里没有举措浏览。
我在网上搜刮这个成绩,发明这个成绩相称广泛,找到了一个讲得对照分明的文章RE:[xsl]ProblemwithChinese(Solution)。
文章的也许意义是:假如你必要天生指定编码的文档,你就不要在代码中利用String。由于在Win32平台内里String的编码老是Utf-16,以是你不克不及希冀MSXML可以输入GB2312的String。假如使用流的体例Load,transformNodeToObject来举行处置,就能够制止这个成绩。
依据这个思绪做出来的程序以下:
dimxsldoc,xmldoc,xmlfile,xslfile
xmlfile="test.xml"
xslfile="test.xsl"
天生xml转换所必要的工具
setxslDoc=server.CreateObject("MSXML2.FreeThreadedDOMDocument")
setxmlDoc=server.CreateObject("MSXML2.DOMDocument")
装进xsl文件
xsldoc.async=False
xsldoc.resolveExternals=False
xsldoc.loadserver.MapPath(xslfile)
装进xml文件
xmldoc.async=False
xmldoc.resolveExternals=False
xmldoc.loadserver.MapPath(xmlfile)
xmldoc.transformNodeToObjectxsldoc,Response
举行转换
分明一切内存
setxslt=nothing
setxsldoc=nothing
setxmldoc=nothing
至此,成绩完整失掉办理。
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。 |
|