1

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

4

2 回答 2

1

我以前没有遇到过这种不太像 XML 的方言,但是 XSLT 不支持序列化到这种格式。您可以通过某种后处理来实现它,例如将属性名称输出为_class_="value",然后使用某种正则表达式处理更改_class_[class].

如果您有进取心,Saxon 允许您实现自己的序列化方法,因此您可以将 XML 序列化方法子类化以对 to 进行类似的替换_class_[class]或者将特殊属性放在序列化程序识别的名称空间中。

于 2017-08-28T22:32:37.127 回答
1

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

您可以输出您描述的形式的文本,但强烈不建议这样做。它肯定不会是 XML。

于 2017-08-28T18:29:17.153 回答