是否有可能在XSLT创建方括号里的属性1.0

是否有可能在XSLT创建方括号里的属性1.0

问题描述:

没有为AMP页面的代码片段旋转木马与一些交互 https://ampbyexample.com/advanced/image_galleries_with_amp-carousel/是否有可能在XSLT创建方括号里的属性1.0

<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':''“)的元素?

+1

相关[amphtml Github问题](https://github.com/ampproject/amphtml/issues/11115)。 – nwellnhof

我还没有遇到过这种不太符合XML的方言,但XSLT不支持这种格式的序列化。您可以通过某种后处理实现它,例如输出属性名称_class_="value",然后使用某种正则表达式处理将_class_更改为[class]。如果你感觉进取,撒克逊允许你实现你自己的序列化方法,所以你可以继承XML序列化方法来做类似_class_替换为[class],或者把特殊属性放在一个命名空间中串行器可以识别。

+0

感谢迈克尔的有益建议。我们会考虑到这一点。 –

XML本身不允许属性名称包含方括号。

你可以输出你描述的形式的文本,但这是极不推荐的。它当然不会是XML。

+0

感谢您的回答 –