所以我在节点@style中保存了一些样式内容,我想调用它来形成<span>
标签的样式属性。它也不够,所以我想将margin-left:700px
作为<span>
标记的样式属性的一部分附加。这可以吗?
<span style="<xsl:copy-of select="Root/Node/MyFile/MyStyle/@style" margin-left:700px">
<xsl:copy-of select="Root/Node/MyFile/MyCaption/Caption"/>
</span>
顺便说一句,我尝试了上述内容,Altova抱怨来自<
的角色<xsl...
在语法上出乎意料。
答案 0 :(得分:3)
你的引言可能搞砸了XSLT,试试这个:
<span>
<xsl:attribute name="style">
<xsl:copy-of select="Root/Node/MyFile/MyStyle/@style" />
<xsl:text> margin-left:700px</xsl:Text>
</xsl:attribute>
<xsl:copy-of select="Root/Node/MyFile/MyCaption/Caption"/>
</span>
我现在不能测试它......
答案 1 :(得分:0)
你不能那样窝,但你可以做类似的事情:
假设您有一个名为'style_var'的变量,其中包含一些CSS:
<xsl:variable name="style_var">color: blue;</xsl:variable>
一个HTML元素,span:
<span>
...
</span>
我很确定你能做到这一点:
<span>
<xsl:attribute name="style">
<xsl:value-of select="$style_var" />
<xsl:text>margin-left: 100px;</xsl:Text>
</xsl:attribute>
</span>
你可以换掉你上面使用的节点选择器的变量选择器。
答案 2 :(得分:0)
在这种情况下,您可能想了解“属性值模板”。这允许您直接在代码中“嵌入”代码。
<span style="{Root/Node/MyFile/MyStyle/@style}" margin-left:700px">
<xsl:value-of select="Root/Node/MyFile/MyCaption/Caption"/>
</span>
花括号{和}在这里表示属性值模板(AVT),并指示应该执行大括号内的代码来获取值。
您需要确保您的xpath表达式'Root / Node / MyFile / MyStyle / @ style'确实返回了正确的值。