新足迹

 找回密码
 注册

精华好帖回顾

· 永远的Austen (2008-10-14) 雨睿 · 2013年1月,车友购车价格汇总 (2013-2-2) crzc
· 请问35岁了再改行学IT,还有戏吗? (2005-6-26) kingwood · 参加活动——怀念丑丑 (2010-3-2) deepdeepsea
Advertisement
Advertisement
查看: 4737|回复: 88

XML and XSLT 的大仙请进。 [复制链接]

头像被屏蔽

禁止发言

发表于 2010-11-15 21:23 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
能否举个用XSLT真实项目的例子??这东西到底是干啥的??
Advertisement
Advertisement

发表于 2010-11-15 21:37 |显示全部楼层
此文章由 click 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 click 所有!转贴必须注明作者、出处和本声明,并保持内容完整
以前有一个公司,把数据导出成XML,然后用XSLT转成HTML

发表于 2010-11-15 21:43 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
把一个xml变成另一个XML

评分

参与人数 1积分 +2 收起 理由
coolioo + 2 A concise and precise explanation

查看全部评分

发表于 2010-11-15 21:48 |显示全部楼层
此文章由 click 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 click 所有!转贴必须注明作者、出处和本声明,并保持内容完整
好像有一个开源PDF也用了XSLT吧?

发表于 2010-11-15 21:50 |显示全部楼层
此文章由 ghj 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ghj 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Can't you google it?
头像被屏蔽

禁止发言

发表于 2010-11-15 21:54 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 click 于 2010-11-15 21:37 发表
以前有一个公司,把数据导出成XML,然后用XSLT转成HTML


这么做有啥好处?
签名被屏蔽
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2010-11-15 21:54 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kawara 于 2010-11-15 21:43 发表
把一个xml变成另一个XML


为啥这么干?
签名被屏蔽
头像被屏蔽

禁止发言

发表于 2010-11-15 21:55 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 ghj 于 2010-11-15 21:50 发表
Can't you google it?


我想知道这正的项目是如何用这个的。有什么好处
签名被屏蔽

发表于 2010-11-15 22:01 |显示全部楼层
此文章由 qunlbao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 qunlbao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
简单的来说,XML就是数据,XSL就是格式
XML+XSL=HTML

发表于 2010-11-15 22:16 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我们的项目web layer call service layer用的是xslt,我们web layer用的是classic asp,无法把web service的结果自动deserialize成object,只是原始状态的xml,我们就用xslt转成html,好在逻辑不复杂,xslt 1.0就可以搞定,ms对xslt2.0不支持,必须用linq to xml才能query xml的数据。

好处是xlst是functional language, stateless的,apply template理论上可以利用cpu的multi core,符合现在语言流行的趋势。不好的地方是99%的地方是它跟developer现有的skill set不符,99%的人都不喜欢用,喜欢的人也真喜欢。xslt的核心在xpath,如果你这方面比较熟,可以尝试一下。

我原来特别排斥这个东西,做了几个page之后,也习惯了,这方面我还是新手,典比我经验多很多,你可以问问他。

评分

参与人数 1积分 +4 收起 理由
澳贼 + 4 你咋啥都知道???!!!

查看全部评分

头像被屏蔽

禁止发言

发表于 2010-11-15 22:21 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2010-11-15 22:16 发表
我们的项目web layer call service layer用的是xslt,我们web layer用的是classic asp,无法把web service的结果自动deserialize成object,只是原始状态的xml,我们就用xslt转成html,好在逻辑不复杂,xslt 1.0就可以搞定,ms对xs ...


关键点来了。为何要把XMl转成html??
签名被屏蔽
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2010-11-15 22:22 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 qunlbao 于 2010-11-15 22:01 发表
简单的来说,XML就是数据,XSL就是格式
XML+XSL=HTML


谢谢. 为何要转成HTML??能不能举个实际的例子??
签名被屏蔽

发表于 2010-11-15 22:25 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 澳贼 于 2010-11-15 22:21 发表


关键点来了。为何要把XMl转成html??


xml是web service的数据,要通过xhtml体现出来,可能这个"转"不太合适,应该说用xhtml包装一下,显示在browser上。

发表于 2010-11-15 22:26 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
http://www.oursteps.com.au/bbs/v ... 7338&extra=page%3D6
这里有个简单的例子,用MSXML读取 XML文件。里边一小段代码用来判断机器上最新的MSXML版本

个人觉得至少有两方面的应用
1是前面同学说的 XML+XSLT = HTML, 提供一个XML数据源比如某个客户的所有订单,再用一个简单的XSL文件就能把XML自动转化成HTM

2是在Javascript里(或者.net)通过XSLT, 利用Xpath等东西对XML进行读写操作,比如说修改所有订单中Product A的价格,

关键是数据源,如果数据源不是XML,用处就不大

[ 本帖最后由 典 于 2010-11-15 21:27 编辑 ]

评分

参与人数 1积分 +3 收起 理由
乱码 + 3 说曹操,曹操到

查看全部评分

头像被屏蔽

禁止发言

发表于 2010-11-15 22:44 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2010-11-15 22:26 发表
http://www.oursteps.com.au/bbs/v ... 7338&extra=page%3D6
这里有个简单的例子,用MSXML读取 XML文件。里边一小段代码用来判断机器上最新的MSXML版本

个人觉得至少有两方面的应用
1是前面同学说的 XML+XSLT = HTML, ...


越来越深刻了。非常谢谢。我以前一直都是读出来的数据放在一个gridview里。哈哈
签名被屏蔽

发表于 2010-11-16 08:05 |显示全部楼层
此文章由 ingeer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ingeer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
XML通過XSLT可以轉換成其它格式的文檔。一般應用於產生HTML多一些
比如這個PAGE的數據可以用同一個XML來保存,然後後2種不同的XSLT可以轉換成HTML 或者WML。
Advertisement
Advertisement

发表于 2010-11-16 10:04 |显示全部楼层

回复 1# 的帖子

此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我们以前做报表用的,XML就是数据,XSLT就是格式。
1张表格就是一个XSLT,然后XML往里面一放就行啦。
头像被屏蔽

禁止发言

发表于 2010-11-16 10:05 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 ingeer 于 2010-11-16 08:05 发表
XML通過XSLT可以轉換成其它格式的文檔。一般應用於產生HTML多一些
比如這個PAGE的數據可以用同一個XML來保存,然後後2種不同的XSLT可以轉換成HTML 或者WML。 ...


我的问题是“什么样的项目,需要把XML变成HTML”.
签名被屏蔽

特殊贡献奖章

发表于 2010-11-16 10:10 |显示全部楼层

回复 18# 的帖子

此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
xml不就是用来存数据的吗,哈哈

你什么时候想把数据里的东西读出来到web上,就把xml的内容转成html。

发表于 2010-11-16 10:12 |显示全部楼层
此文章由 rogerk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rogerk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 澳贼 于 2010-11-16 10:05 发表


我的问题是“什么样的项目,需要把XML变成HTML”.


给你举一个例子:

你的web server生成了一个xml的结果发给客户端,但是客户端要看的是html,所以就加上一个xslt,由浏览器把xml变成html显示。

发表于 2010-11-16 10:16 |显示全部楼层
此文章由 10xFaster 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 10xFaster 所有!转贴必须注明作者、出处和本声明,并保持内容完整
xslt是最基本的转换xml格式的东西
Advertisement
Advertisement

发表于 2010-11-16 10:17 |显示全部楼层
此文章由 rumcoke 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rumcoke 所有!转贴必须注明作者、出处和本声明,并保持内容完整
玩wow的话 不知道魔兽官方网站上的armory可不可以算是个例子 虽然没研究过 但是他的web link基本都是.xml结尾的 而且在网页上可以做大量的搜索操作

发表于 2010-11-16 10:34 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果是把xml作为result set传回来的话,实在不值得推荐,它没什么encoding,size实在是个问题,如果都host在firewall之后,还可以用wcf,如果不是,就杯具了。

xslt是xml盛行时期的产品,后来也成为标准,但如今大家也不是象当年那样一窝蜂(以opera为首的各大browser抵制xhtml2.0就是一个例子,从而导致业界转向html5)。

我个人觉得出不了5年,可能xml也会成为历史,更轻量级的可以encoding的数据格式会逐渐被行业接受,那时候xslt可能更加minor了.

评分

参与人数 1积分 +3 收起 理由
kr2000 + 3 我很赞同

查看全部评分

特殊贡献奖章

发表于 2010-11-16 10:39 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2010-11-16 10:34 发表
如果是把xml作为result set传回来的话,实在不值得推荐,它没什么encoding,size实在是个问题,如果都host在firewall之后,还可以用wcf,如果不是,就杯具了。

xslt是xml盛行时期的产品,后来也成为标准,但如今大家也不是象当年那样 ...

是啊,现在ajax也不是真正意义的ajax了,很多都没有xml
头像被屏蔽

禁止发言

发表于 2010-11-16 11:17 |显示全部楼层
此文章由 澳贼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 澳贼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 rogerk 于 2010-11-16 10:12 发表


给你举一个例子:

你的web server生成了一个xml的结果发给客户端,但是客户端要看的是html,所以就加上一个xslt,由浏览器把xml变成html显示。


web server 直接读数据库生成html岂不更好???
签名被屏蔽

发表于 2010-11-16 11:22 |显示全部楼层
此文章由 sydner 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 sydner 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 澳贼 于 2010-11-16 10:05 发表


我的问题是“什么样的项目,需要把XML变成HTML”.


一个简单的例子:

同样的数据源,比如说一张invoice,需要在browser上显示出来,这就需要转成html了。
然后在browser里,用户可以点击"Save as PDF" (转成PDF), "Save as spreadsheet" (转成Excel),"Save as CSV" (转成CSV) etc...

这样的好处是所有的library(HTML的,PDF的,Excel的,CSV的)只需要指向相同的XML就好了,而XML很多时候比database要方便调用和管理一些,要看具体的项目要求了。

评分

参与人数 1积分 +2 收起 理由
澳贼 + 2 分不多,请笑纳

查看全部评分

Advertisement
Advertisement

发表于 2010-11-16 11:24 |显示全部楼层
此文章由 lxp 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lxp 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 澳贼 于 2010-11-16 11:17 发表


web server 直接读数据库生成html岂不更好???

狗狗xml的优点

发表于 2010-11-16 11:26 |显示全部楼层
此文章由 lxp 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lxp 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2010-11-16 10:39 发表

是啊,现在ajax也不是真正意义的ajax了,很多都没有xml

一般都用现成的控件了。

发表于 2010-11-16 11:27 |显示全部楼层
此文章由 zn7726 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zn7726 所有!转贴必须注明作者、出处和本声明,并保持内容完整
web server 直接读数据库生成html岂不更好???

那不成了asp / jsp 了吗

发表于 2010-11-16 11:42 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 澳贼 于 2010-11-16 11:17 发表


web server 直接读数据库生成html岂不更好???


对high traffic的website(我们现在的web site每个月的访问量将近30million),web layer和service layer是分开的,每个layer都有几个web farm,前面都有loader balancer,后面有若干nodes支持,web layer对service layer的access是通过consume web service完成的(每天xml只是数据量就有2个G),从而实现高程度的scalibility.

如果traffic不高,根本用不到web farm,一个node解决问题,也不用分层这么明显,database那边也就用一个instance就可以了,“直接读数据库生成html”一点问题都没有。

[ 本帖最后由 乱码 于 2010-11-16 11:43 编辑 ]

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部