xsl元素的疑问

ttyp 2004-12-06 04:12:36
1.<xsl:variable>和<xls:param>,<xsl:with-param>有什么区别?
2.<xsl:import>、<xsl:include>的区别
3.<xsl:text>和普通文本的区别
4.<xsl:conment>和直接写<!-- -->的区别
5.<xsl:element>和直接写HTML元素的区别
6.<xsl:output>什么用处?
7.<xsl:preserve-space>、<xsl:strip-space>的用处?
8.<xsl:transform>的用处
...全文
217 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gavin 2004-12-07
  • 打赏
  • 举报
回复
ttyp(愿赌服输) ( ) 信誉:100

<xsl:variable>是可以改变的,只是在一个模板里不行,比如在xsl:stylesheet里定义的可以在xsl:template里改变

——--------------
你在stylesheet里面定义相当于全局变量,但你在template里面改变,只是再声明一个同名的局部变量,实际上全局变量没有改变。

不知道我有没有说错~~~
dsclub 2004-12-07
  • 打赏
  • 举报
回复
xsl:variable只能在一个域内进行一次赋值,不是像通常的程序语言里的变量的概念。
这点是让我有点受不了xsl的地方。

当初在进行一个递归出了好大问题,最终还是没解决了,干脆辅以js写的。
ttyp 2004-12-07
  • 打赏
  • 举报
回复
经检验,楼上正确,呵呵
redez 2004-12-06
  • 打赏
  • 举报
回复
<xsl:call-template name="root">
<xsl:with-param name="ee" select="elem"/>
</xsl:call-template>

调用时
<xsl:template name="root">
<xsl:param name="ee"/>
</xsl:template>
redez 2004-12-06
  • 打赏
  • 举报
回复
<xsl:variable>元素定义变量,它可以使全局的或局部的。全局的变量定义在样式表的顶层
局部的变量在模板中定义
ttyp 2004-12-06
  • 打赏
  • 举报
回复
<xsl:variable>是可以改变的,只是在一个模板里不行,比如在xsl:stylesheet里定义的可以在xsl:template里改变
dotnetbus 2004-12-06
  • 打赏
  • 举报
回复
1.<xsl:variable>和<xls:param>,<xsl:with-param>有什么区别?
我的理解是
<xsl:variable>为任意地方定义的变量
<xls:param>为模板的参数变量
<xsl:with-param>为调用模板设置的参数值


-------------
<xsl:variable>只能在初始赋值,以后不能改变
<xls:param>可以有默认值,也可以传参数时改变

---------------------------------------
<xsl:transform> 和 <xsl:stylesheet> 是一样的,没有区别
好像用哪一个是向后兼容吧,忘记了
ttyp 2004-12-06
  • 打赏
  • 举报
回复
8.<xsl:transform>的用处
--------------------------------------------------
<xsl:transform> 和 <xsl:stylesheet> 是同义词,XSLT认为它们是相同的,都可作为文档的最顶级元素,这两种等价的方式表示样式表的开始。

既然是同意义,为什么不去掉一个呢,肯定有什么不一样吧
ttyp 2004-12-06
  • 打赏
  • 举报
回复
1.<xsl:variable>和<xls:param>,<xsl:with-param>有什么区别?
我的理解是
<xsl:variable>为任意地方定义的变量
<xls:param>为模板的参数变量
<xsl:with-param>为调用模板设置的参数值
ttyp 2004-12-06
  • 打赏
  • 举报
回复
6.<xsl:output>
指定输出的内容,method一般为html,text,xml

XML File (hello.xml)

<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="hello.xsl"?>
<messages>
<message>Hello World!</message>
</messages>
XSLT File (hello.xsl)

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>

<xsl:template match="//message">
<html>
<head>
<title>Message</title>
</head>
<body>
<p><xsl:value-of select="."/></p>
</body>
</html>
</xsl:template>

</xsl:stylesheet>
Output

This is the formatted output:

Hello World!

This is the processor output:

<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-16">
<title>Message</title>
</head>
<body>
<p>Hello World!</p>
</body>
</html>


可以用msxsl hello.xml hello.xsl看其输出

msxsl的下载地址:
http://www.microsoft.com/downloads/details.aspx?familyid=2fb55371-c94e-4373-b0e9-db4816552e41&languageid=f49e8428-7071-4979-8a67-3cffcb0c2524&displaylang=en
zllzmcDCR 2004-12-06
  • 打赏
  • 举报
回复
8.<xsl:transform>的用处
--------------------------------------------------
<xsl:transform> 和 <xsl:stylesheet> 是同义词,XSLT认为它们是相同的,都可作为文档的最顶级元素,这两种等价的方式表示样式表的开始。
zllzmcDCR 2004-12-06
  • 打赏
  • 举报
回复
6.<xsl:output>什么用处?
--------------------------------------
指定有关XSLT处理器输出内容,直接做为<xsl:stylesheet>元素的子元素,最常使用的属性是“method”,“omit-xml-declaration”“version”。
ttyp 2004-12-06
  • 打赏
  • 举报
回复
呵呵,辛苦
zlj113 2004-12-06
  • 打赏
  • 举报
回复
2.<xsl:import>、<xsl:include>的区别
---------------------------------
import元素是建立一个连接到所要的外部样式表,
include则可以在目前样式表中的位置,复制其它的样式表的内容到目前的样式表中,也就是说include 将外部样式表中stylesheet的内容复制到目前的样式表,

位置:include 可以出现在最后一个xsl:import元素之后,但是在其它的xsl元素之前。
import:所有xsl:import元素必须出现在xsl样式表的最上层,但是在xsl:stylesheet元素之下。

优先级:xsl:include 是将xsl:stylesheet的内容复制到目前的样式表,所以不管是复制进来 的还是目前样式表中的规则,两都都有相同的优先级。
xsl:import: 如果插入进来的多个样式表中的样板规则彼此有冲突,以最后插入进来的样式表为准。



我是照书上抄的,好长,好累,呵呵。
ttyp 2004-12-06
  • 打赏
  • 举报
回复
哪里,初学XSL,看的都是些语法,没实际的例子,问问比较快,嘿嘿
tpf9000 2004-12-06
  • 打赏
  • 举报
回复
高手提问,看来只有找高高手了

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧