0

我正在尝试格式化我的表格以便有一个左填充,我希望在我的 for 语句中做出决定,因为有多行需要定义填充。

我创建了一个 XML 元素,它告诉我要使用什么填充,所以我需要做的就是阅读这个,但是当我尝试阅读它时,当我在浏览器中打开 xml 时它不会显示任何内容。

这是我的 xml 示例。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="xmlstylesheet.xsl" type="text/xsl"?>
<Collection>
     <Passives>
          <Talent>Tra</Talent>
          <TCost>1</TCost>
          <Type>ANY</Type>
          <Action>Pass</Action>
     </Passives>
     <Passives>
          <Talent>Gen</Talent>
          <TCost>1</TCost>
          <Type>ANY</Type>
          <Indent>1</Indent>
          <Action>Pass</Action>
     </Passives>
     <Passives>
          <Talent>Weap</Talent>
          <TCost>12</TCost>
          <Type>ANY</Type>
          <Indent>2</Indent>
          <Action>Pass</Action>
     </Passives>
</Collection>

它的要点是,如果<Indent></Indent>没有 Indent 元素,则 padding 应等于 15px,如果 indenet=1,则 padding 应等于 30,最后 indent = 2,则 padding 应等于 45。

我正在尝试在我的 xslt 中为 Passives 的语句定义填充。

    <xsl:for-each select="Passives">
            <div style="font-family:Calibri, Arial; font-size:5pt; cursor: default;">

            <xsl:choose>
<xsl:when test="Indent == '2'">
                    <xsl:variable name="newpadding">45px</xsl:variable>
                </xsl:when>
                <xsl:when test="Indent == '1'">
                    <xsl:variable name="newpadding">30px</xsl:variable>
                </xsl:when>
                <xsl:when test="Indent != ''">
                    <xsl:variable name="newpadding">15px</xsl:variable>
                </xsl:when>
        </xsl:choose> 

        <xsl:if test="Talent != ''">
//etc

因此,一旦我输入我的 for 语句,我就想定义 newpadding,以便稍后将其应用于我的表格填充。

任何帮助将不胜感激。

4

1 回答 1

2

而不是这个:

   <xsl:choose>
           <xsl:when test="Indent == '2'">
                <xsl:variable name="newpadding">45px</xsl:variable>
            </xsl:when>
            <xsl:when test="Indent == '1'">
                <xsl:variable name="newpadding">30px</xsl:variable>
            </xsl:when>
            <xsl:when test="Indent != ''">
                <xsl:variable name="newpadding">15px</xsl:variable>
            </xsl:when>
    </xsl:choose> 

试试这个:

  <xsl:variable name="newpadding"
                select="15 * (1 + concat(0, Indent))" />

您只向我们展示了 XSLT 的一小部分,因此无法查看是否还有其他问题需要修复。

于 2013-04-25T06:14:19.957 回答