2009-12-02 48 views
1

我想學習XSLT ,但沒有很好的教程在哪裏可以找到所有的信息一起XML來的Xml - XSLT

請幫我在這裏...

<xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
</xsl:template> 

    <xsl:template match="@*"> 
    <xsl:attribute namespace="{namespace-uri()}" name="{name()}"/> 
    </xsl:template> 

這是一些代碼,我發現在計算器 但我不明白,什麼叫 「正是」 表達 「@|節點()」, 「@」, 「{命名空間URI()}」, 「名稱()」

意味着......幫助我......

+1

退房HTTP:// WWW。 w3schools.com/xsl/default.asp關於XSLT的一個很好的教程 – 2009-12-02 17:31:19

+0

w3schools是我第一個去任何基於Web的技術人員的地方......但是它沒有多說關於使用Xslt編寫Xml的Xml ...特別是阿布t前面提到的關鍵字... – 2009-12-02 17:36:55

回答

4

首先,我想指出你可以在the XPath specs找到這個和更多。

短的版本是一個@前綴表示一個屬性節點(而不是元素和文本節點,通常情況下),*意味着「任何名」更多或更少(所以*匹配的所有元素和@*所有屬性),node()匹配任何元素或文本節點,|是「連接」或「聯合」運算符(因此@*|node()匹配所有元素,文本和屬性節點)。

繼續討論不太常見的東西,namespace-uri()返回「上下文節點」命名空間的完整URI(以OO術語來看「this」),並返回當前節點的名稱,並帶有適當的命名空間前綴(請注意,前綴是從XSLT文件取得的,而不是XML文件,如果它們不同)。

最後,{...}是一種將XPath表達式包含在通常不被允許的屬性值中的方法。你最常見的結構就像<a href="{link/url}">

我意識到這可能是一個非常厚的閱讀。不過,希望它有幫助。 :-)

+0

謝謝本,這真的幫助... 我不知道這些語法屬於XPath。 這一個幫助。 – 2009-12-02 17:40:36

+0

這真的很常見,看起來!但是當我學習XSLT時,我實際上比XSLT更經常提到XPath規範。祝你學習好,我對它有很多樂趣。 ;-) – 2009-12-02 17:49:43