xslt转换中表达式'['中的意外标记

时间:2017-09-15 20:38:45

标签: xml xslt xpath

所以,我的xml看起来像这样:

<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 个答案:

答案 0 :(得分: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='), ',')"/>