Xsl вложенный цикл - PullRequest
       1

Xsl вложенный цикл

0 голосов
/ 23 ноября 2011

У меня проблема с вложенным циклом. Переменная выходит за рамки видимости, когда я пытаюсь выбрать ее обратно. Я понимаю, почему (я думаю), но я не знаю, какие у меня есть варианты, чтобы это исправить.

          <xsl:for-each select="/objects/InstalledSQLServices">
              <xsl:variable name="InstalledService" select="./Property[@Name ='Name']"></xsl:variable>
              <tr>
                <td align="left">
                  <xsl:value-of select="./Property[@Name ='DisplayName']"/>
                </td>
                <td align="left">
                  <xsl:value-of select="./Property[@Name ='Status']"/>
                </td>
                <xsl:for-each select="/objects/SqlVersion">
                  <xsl:variable name="SqlInstance" select="concat('MSSQL$',./Property[@Name ='Instance'])"></xsl:variable>
                  <xsl:variable name="SqlDescription">
                    <xsl:choose>
                      <xsl:when test="$InstalledService=$SqlInstance">
                        <xsl:value-of select="concat(./Property[@Name ='Version'],' ', ./Property[@Name ='Edition'])"/>
                      </xsl:when>
                      <xsl:otherwise>                            
                        <xsl:value-of select="None"/>
                      </xsl:otherwise>
                    </xsl:choose>       
                  </xsl:variable>                 
                </xsl:for-each>
                <td align="left" style="color: rgb(255,0,0); font-weight: bold">
                    <xsl:copy-of select="$SqlDescription"/>      
                </td>   
              </tr>
          </xsl:for-each>

1 Ответ

0 голосов
/ 26 ноября 2011

Вот код, который я использовал в итоге:

          <xsl:for-each select="/objects/InstalledSQLServices">
            <xsl:variable name="InstalledService" select="./Property[@Name ='Name']"></xsl:variable>
            <tr>
              <td align="left">
                <xsl:value-of select="./Property[@Name ='DisplayName']"/>
              </td>
              <td align="left">
                <xsl:value-of select="./Property[@Name ='Status']"/>
              </td>
              <td align="left">
                <xsl:for-each select="/objects/GetSqlVersion">
                  <xsl:variable name="SqlInstance" select="concat('MSSQL$',./Property[@Name ='Instance'])"></xsl:variable>
                  <xsl:choose>
                    <xsl:when test="$InstalledService=$SqlInstance">
                      <xsl:value-of select="concat(./Property[@Name ='Version'],' ',./Property[@Name ='Edition'],' ',./Property[@Name ='fullVer'],' ',./Property[@Name ='Level'])"/>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:value-of select="'&#160;'"/>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:for-each>
              </td>
            </tr>
          </xsl:for-each>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...