2017-09-15 61 views
1

所以,我的XML看起來是這樣的:意外標記「[」在XSLT轉換

<Document Resolution="{X=300,Y=300}"> 
    ... 
</Document> 

我試圖生成與分辨率值的xml。它應該是這樣的:

<image xdpi="300" ydpi="300"> 
    ... 
</image> 

現在,我的xslt文件看起來像這樣(圖像部分):

<image> 
    <xsl:attribute name="xdpi"> 
     <xsl:value-of select="/*/[substring-before(substring-after(@Resolution, 'X='), ',')]"/> 
    </xsl:attribute> 
    .... 
</image> 

我試圖提取決議的X值。然而,這是我得到的消息:

在表達式中的異常標記「[」

我試着刪除的方括號,但抱怨變得更糟。

有沒有解決這個問題的方法?或另一種方式來提取分辨率值?

感謝

+1

爲什麼你想在所有使用方括號?你描述的情況沒有意義。在任何情況下,謂詞都不是完整的位置步驟 - IOW,在'['之前不能有'/'斜槓。 –

回答

2

只需使用

<xsl:template match="Document"> 
    <image xdpi="{substring-before(substring-after(@Resolution, 'X='), ',')}" ydpi="{...}">...</image> 
</xsl:template> 

對於你的方法,你需要

<xsl:value-of select="substring-before(substring-after(/*/@Resolution, 'X='), ',')"/>