2017-08-28 86 views
1

沒有爲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

回答

1

我還沒有遇到過這種不太符合XML的方言,但XSLT不支持這種格式的序列化。您可以通過某種後處理實現它,例如輸出屬性名稱_class_="value",然後使用某種正則表達式處理將_class_更改爲[class]。如果你感覺進取,撒克遜允許你實現你自己的序列化方法,所以你可以繼承XML序列化方法來做類似_class_替換爲[class],或者把特殊屬性放在一個命名空間中串行器可以識別。

+0

感謝邁克爾的有益建議。我們會考慮到這一點。 –

1

XML本身不允許屬性名稱包含方括號。

你可以輸出你描述的形式的文本,但這是極不推薦的。它當然不會是XML。

+0

感謝您的回答 –