是否可以在 XSLT 1.0 中的方括号中创建属性
Is it possible to create an attribute in square brackets in XSLT 1.0
有一个用于 AMP 页面轮播的代码片段,具有一定的交互性
https://ampbyexample.com/advanced/image_galleries_with_amp-carousel/
<amp-carousel controls
width="400"
height="100">
<amp-img src="/img/image1.jpg"
width="100"
height="75"
role="button"
tabindex="0"
[class]="selectedSlide == 0 ? 'selected' : ''"
on="tap:AMP.setState({selectedSlide: 0})"></amp-img>
<amp-img src="/img/image2.jpg"
width="100"
height="75"
role="button"
tabindex="1"
[class]="selectedSlide == 1 ? 'selected' : ''"
on="tap:AMP.setState({selectedSlide: 1})"></amp-img>
<amp-img src="/img/image3.jpg"
width="100"
height="75"
role="button"
tabindex="2"
[class]="selectedSlide == 2 ? 'selected' : ''"
on="tap:AMP.setState({selectedSlide: 2})"></amp-img>
</amp-carousel>
我想使用 XSLT 将它集成到我的页面中。问题是元素的属性使用带方括号的属性。
是否可以在 XSLT 中创建具有此类特定属性 ([class]="selectedSlide == 1 ? 'selected' : ''") 的此类元素?
XML本身不允许属性名称包含方括号。
您可以输出您所描述形式的文本,但强烈不推荐这样做。肯定不会是XML.
我以前从未遇到过这种不完全XML 的方言,但 XSLT 不支持序列化为这种格式。您可以通过某种 post 处理来实现它,例如将属性名称输出为 _class_="value"
,然后使用某种正则表达式处理将 _class_
更改为 [class]
。
如果您有进取心,Saxon 允许您实现自己的序列化方法,因此您可以子类化 XML 序列化方法,以将 _class_
类似地替换为 [class]
,或者将特殊属性放在序列化程序可识别的命名空间中。
有一个用于 AMP 页面轮播的代码片段,具有一定的交互性 https://ampbyexample.com/advanced/image_galleries_with_amp-carousel/
<amp-carousel controls
width="400"
height="100">
<amp-img src="/img/image1.jpg"
width="100"
height="75"
role="button"
tabindex="0"
[class]="selectedSlide == 0 ? 'selected' : ''"
on="tap:AMP.setState({selectedSlide: 0})"></amp-img>
<amp-img src="/img/image2.jpg"
width="100"
height="75"
role="button"
tabindex="1"
[class]="selectedSlide == 1 ? 'selected' : ''"
on="tap:AMP.setState({selectedSlide: 1})"></amp-img>
<amp-img src="/img/image3.jpg"
width="100"
height="75"
role="button"
tabindex="2"
[class]="selectedSlide == 2 ? 'selected' : ''"
on="tap:AMP.setState({selectedSlide: 2})"></amp-img>
</amp-carousel>
我想使用 XSLT 将它集成到我的页面中。问题是元素的属性使用带方括号的属性。 是否可以在 XSLT 中创建具有此类特定属性 ([class]="selectedSlide == 1 ? 'selected' : ''") 的此类元素?
XML本身不允许属性名称包含方括号。
您可以输出您所描述形式的文本,但强烈不推荐这样做。肯定不会是XML.
我以前从未遇到过这种不完全XML 的方言,但 XSLT 不支持序列化为这种格式。您可以通过某种 post 处理来实现它,例如将属性名称输出为 _class_="value"
,然后使用某种正则表达式处理将 _class_
更改为 [class]
。
如果您有进取心,Saxon 允许您实现自己的序列化方法,因此您可以子类化 XML 序列化方法,以将 _class_
类似地替换为 [class]
,或者将特殊属性放在序列化程序可识别的命名空间中。