![]() |
温柔的大葱 · Xamarin Forms: How to ...· 1 月前 · |
![]() |
完美的砖头 · autohotkey GroupBox - ...· 4 月前 · |
![]() |
狂野的皮蛋 · 怎么继承 CSSProperties ...· 9 月前 · |
![]() |
气势凌人的打火机 · 间接寻址级别不同 为什么 怎么解决?_百度知道· 1 年前 · |
![]() |
威武的香瓜 · reactjs - How can I ...· 2 年前 · |
XSLT支持在执行时将参数传递给样式表的概念。在JavaScript中使用XSLTProcessor时,这已经有一段时间了。但是,使用
<?xml-stylesheet?>
处理指令(PI)时,以前无法提供参数。
为了解决这两个新的PI在Firefox 2中实现(请参阅下面的支持版本以了解详细信息)
<?xslt-param?>
和
<?xslt-param-namespace?>
。两个PI都可以像
xml-stylesheet
PI那样包含“伪属性” 。
以下文档将两个参数“color”和“size”传递给样式表“style.xsl”。
<?xslt-param name="color" value="blue"?>
<?xslt-param name="size" select="2"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
请注意,
XSLTProcessor
在JavaScript中使用对象完成转换时,这些PI没有效果。
使用
xml-stylesheet中
定义的规则分析
xslt-param
和
xslt-param-namespace
PI中的属性。任何无法识别的属性都必须被忽略。只要该属性遵循其中的语法,任何属性的解析都不能由于存在无法识别的属性而失败。
xml-stylesheet
无论是
xslt-param
和
xslt-param-namespace
必须出现在文档的序言中,第一个元素标记之前IE浏览器。序言中的所有PI都必须得到尊重,无论是在
xml-stylesheet
PI 之前发生,还是在任何PI 之后发生。
如果有多个
xml-stylesheet
PI,则参数将应用于所有样式表,因为所有样式表都按照XSLT spec.reference导入到单个样式表中?请注意,
xml-stylesheet
Firefox中目前不支持多个XSLT PI。
所述
xslt-param
PI支持4个属性:
名称参数名称的本地名称部分。没有对属性进行语法检查,但如果它不是有效的 NCName ,它将永远不匹配样式表中的任何参数。命名空间参数名称的命名空间。没有对属性进行语法检查。值包含参数的字符串值。该属性的值用作参数的值。数据类型将始终是 字符串 。为该参数选择一个XPath表达式。该属性的值被解析为XPath表达式。评估表达式的结果被用作参数的值。
如果 name 属性缺失或为空,则PI将被忽略。
如果 名称空间 属性缺失或为空,则使用空名称空间。
指定样式表中不存在的参数名称(或样式表中的变量)不是错误。PI简单地被忽略。
如果 value 和 select 都存在,或者如果既没有 值 也没有 select ,则PI被忽略。
请注意,由于该值可能包含撇号和引号字符,
value="..."
因此不完全等同
select="'...'"
。
将参数'color'设置为'red'字符串: