2009-11-07 89 views
1

我有一些附帶數字的XML元素,因爲有更多可用的XML元素。XSL可變數量的子節點

如此:

<Images> 
    <Image1>C:\Path\To\AnImage</Image1> 

    <Image2>C:\Path\To\AnotherImage</Image2> 
</Images> 

圖像中的每個XML文檔的量是可變的。我怎樣才能確保我的XSL文件將顯示標籤內的所有元素?

我也想把每個ImageX標籤內的每個字符串放在Img src =「stringfromxmlelement」裏面用XSL?這可能嗎?

託尼

+0

我只會警告說,如果客戶端和服務器都運行在** **相同​​的機器上,那麼使用本地磁盤文件系統路徑而不是URL來顯示圖像纔會起作用。 – BalusC 2009-11-07 20:57:10

回答

7
<xsl:template match="Images/*[starts-with(name(),'Image']"> 
<img src="{.}" /> 
</xsl:template> 

順便說一句,也許你不能改變的XML標記名稱,但它會更好地命名內標籤作爲圖像而不是ImageX,這可能是不必要的。

+0

同意關於標籤名稱 - 如果需要區分它們或進行排序,那麼應該添加適當的屬性 – Murph 2009-11-07 14:26:36

+0

什麼是''?我很確定這是非法的。 – Tomalak 2009-11-09 10:25:49

+0

這只是一種快速(非法)輸入結束標記的方法。 xsl:template標籤需要正確關閉。 – 2009-11-10 13:01:34

1

我想嘗試沿着這些路線的東西:

<xsl:template match="Images"> 
    <xsl:for-each select="*"> 
    <img src="{text()}" /> 
    </xsl:for-each> 
</xsl:template>