Вложенная группировка с использованием XSLT v1.0 + Windows процессор по умолчанию - PullRequest
0 голосов
/ 16 марта 2020

Я создал вложенную группировку, используя XSLT v2.0 для каждой группы . В настоящее время он работает, но, похоже, на нашем сервере нет другого XSLT-процессора, кроме встроенного в Windows, и происходит сбой при создании файла HTML из-за неподдерживаемой для каждой группы, Так что в основном я связан с тем, какой сервер в настоящее время установлен (мне не разрешено устанавливать какие-либо другие автономные компоненты по любой причине).

Вот мой XML

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="results.xsl"?>
<Results Date="" Title="" Mode="" >
    <Result Type="Excel vs StoredProc+Formula" SubType="Report 1" GroupName="Sheet 1" ReferenceName="CTC" LeftSideValue="" RightSideValue="" Evaluation="Passed" />
    <Result Type="Excel vs StoredProc+Formula" SubType="Report 1" GroupName="Sheet 1" ReferenceName="FTR" LeftSideValue="" RightSideValue="" Evaluation="Failed" />
    <Result Type="Excel vs StoredProc+Formula" SubType="Report 2" GroupName="Sheet 2" ReferenceName="ABR" LeftSideValue="" RightSideValue="" Evaluation="Passed" />
    <Result Type="Excel Schema vs Excel Schema" SubType="Report 1" GroupName="Sheet 3" ReferenceName="TWS" LeftSideValue="" RightSideValue="" Evaluation="Passed" />
    <Result Type="Excel Schema vs Excel Schema" SubType="Report 1" GroupName="Sheet 3" ReferenceName="TOS" LeftSideValue="" RightSideValue="" Evaluation="Failed" />
    <Result Type="SQLDB Schema vs SQLDB Schema" SubType="Report 2" GroupName="Sheet1" ReferenceName="LS" LeftSideValue="" RightSideValue="" Evaluation="Passed" />
</Results>

Рабочий XSLT:

    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="xml" indent="yes"/>
   <xsl:template match="Results">
      <ul>
         <xsl:for-each-group select="Result" group-by="@Type">
            <li>
               <xsl:value-of select="@Type"/>
               <ul>
                  <xsl:for-each-group select="current-group()" group-by="@SubType">
                     <li>
                        <xsl:value-of select="@SubType"/>
                        <ul>
                           <xsl:for-each-group select="current-group()" group-by="@GroupName">
                              <li>
                                 <xsl:value-of select="@GroupName"/>
                                    <ul>
                                        <xsl:for-each select="current-group()">
                                            <li>
                                                <xsl:value-of select="@ReferenceName"/>
                                            </li>
                                        </xsl:for-each>
                                    </ul>
                              </li>
                           </xsl:for-each-group>
                        </ul>
                     </li>
                  </xsl:for-each-group>
               </ul>
            </li>
         </xsl:for-each-group>
      </ul>
   </xsl:template>
</xsl:stylesheet>

Требуемый вывод в HTML:

<ul>
   <li>Excel vs StoredProc+Formula<ul>
         <li>Report 1<ul>
               <li>Sheet 1<ul>
                     <li>CTC</li>
                     <li>FTR</li>
                  </ul>
               </li>
            </ul>
         </li>
         <li>Report 2<ul>
               <li>Sheet 2<ul>
                     <li>ABR</li>
                  </ul>
               </li>
            </ul>
         </li>
      </ul>
   </li>
   <li>Excel Schema vs Excel Schema<ul>
         <li>Report 1<ul>
               <li>Sheet 3<ul>
                     <li>TWS</li>
                     <li>TOS</li>
                  </ul>
               </li>
            </ul>
         </li>
      </ul>
   </li>
   <li>SQLDB Schema vs SQLDB Schema<ul>
         <li>Report 2<ul>
               <li>Sheet1<ul>
                     <li>LS</li>
                  </ul>
               </li>
            </ul>
         </li>
      </ul>
   </li>
</ul>

Я хочу преобразовать текущий сценарий XSLT, используя этот MUENCHIAN METHOD группировки.

Пожалуйста, сообщите.

...