Сортировка столбца вывода Excel, полученного из двух разных XPATH в XSTL 1.0 - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу отсортировать один столбец (вывод в формате Excel), который заполняется из двух разных XPATH. Я попытался отсортировать заголовок столбца с помощью xsl: sort, он работает при первой сортировке на первом XPATH(p_episode_series/ES_PRODUCT/localTitles) уровне, а затем на втором XPATH(txortxeventproduct/ES_PRODUCT/localTitles) уровне. Но мне нужно сортировать по заголовку столбца не на основе XPATH.

Я сортирую, используя ниже XPATH:

  1. txortxeventproduct/ES_PRODUCT/p_episode_series/ES_PRODUCT/localTitles/ES_PRODUCTTITLE[pt_type/ESP_PRODUCTTITLETYPE/@name = 'FR_Scheduling Title']/@pt_title
  2. txortxeventproduct/ES_PRODUCT/localTitles/ES_PRODUCTTITLE[pt_type/ESP_PRODUCTTITLETYPE/@name = 'FR_Scheduling Title']/@pt_title

Мой код:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output method="xml" indent="yes" encoding="UTF-8" version="1.0"/>
    <!-- Global Variables -->
    <xsl:variable name="gvEpisodeProductType" select="'Episode'"/>
    <!--MATCHING TEMPLATES -->
    <xsl:template match="continuitydays">
        <xsl:for-each select="ES_CONTINUITYDAY/txevents/ES_BMTXEVENT[txortxeventproduct/ES_PRODUCT/euQuotaType/ESP_EUQUOTATYPE/@oid='8653035019']">
            <xsl:sort select="txortxeventproduct/ES_PRODUCT/p_episode_series/ES_PRODUCT/localTitles/ES_PRODUCTTITLE[pt_type/ESP_PRODUCTTITLETYPE/@name = 'FR_Scheduling Title']/@pt_title" order="ascending"/>
            <xsl:sort select="txortxeventproduct/ES_PRODUCT/localTitles/ES_PRODUCTTITLE[pt_type/ESP_PRODUCTTITLETYPE/@name = 'FR_Scheduling Title']/@pt_title" order="ascending"/>
            <Row>
                <!-- Title -->
                <Cell ss:StyleID="s82">
                    <Data ss:Type="String">
                        <xsl:choose>
                            <!-- checking is episode or Program -->
                            <xsl:when test="txortxeventproduct/ES_PRODUCT/@p_product_type = $gvEpisodeProductType">
                                <xsl:value-of select="txortxeventproduct/ES_PRODUCT/p_episode_series/ES_PRODUCT/localTitles/ES_PRODUCTTITLE[pt_type/ESP_PRODUCTTITLETYPE/@name = 'FR_Scheduling Title']/@pt_title"/>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:value-of select="txortxeventproduct/ES_PRODUCT/localTitles/ES_PRODUCTTITLE[pt_type/ESP_PRODUCTTITLETYPE/@name = 'FR_Scheduling Title']/@pt_title"/>
                            </xsl:otherwise>
                        </xsl:choose>
                    </Data>
                </Cell>
            </Row>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

Мой источник:

<?xml version="1.0" encoding="UTF-8"?>
<continuitydays>
    <ES_CONTINUITYDAY>
        <txevents>
            <ES_BMTXEVENT>
                <txortxeventproduct>
                    <ES_PRODUCT p_product_type="Episode">
                        <p_episode_series>
                            <ES_PRODUCT p_product_title="Bunk&apos;d S1">
                                <localTitles>
                                    <ES_PRODUCTTITLE pt_title="Camp Kikiwaka">
                                        <pt_type>
                                            <ESP_PRODUCTTITLETYPE name="FR_Scheduling Title"/>
                                        </pt_type>
                                    </ES_PRODUCTTITLE>
                                </localTitles>
                            </ES_PRODUCT>
                        </p_episode_series>
                    </ES_PRODUCT>
                </txortxeventproduct>
            </ES_BMTXEVENT>
            <ES_BMTXEVENT>
                <txortxeventproduct>
                    <ES_PRODUCT p_product_type="Episode" p_product_title="Bunk&apos;d S1 Ep 2">
                        <p_episode_series>
                            <ES_PRODUCT p_product_title="Bunk&apos;d S1">
                                <localTitles>
                                    <ES_PRODUCTTITLE pt_title="Apple Kikiwaka">
                                        <pt_type>
                                            <ESP_PRODUCTTITLETYPE name="FR_Scheduling Title"/>
                                        </pt_type>
                                    </ES_PRODUCTTITLE>
                                    <ES_PRODUCTTITLE pt_title="Bunk&apos;d">
                                        <pt_type>
                                            <ESP_PRODUCTTITLETYPE name="Swedish_EPG Title"/>
                                        </pt_type>
                                    </ES_PRODUCTTITLE>
                                </localTitles>
                            </ES_PRODUCT>
                        </p_episode_series>
                    </ES_PRODUCT>
                </txortxeventproduct>
            </ES_BMTXEVENT>
            <ES_BMTXEVENT>
                <txortxeventproduct>
                    <ES_PRODUCT p_product_type="Episode" p_product_title="Bunk&apos;d S1 Ep 2">
                        <p_episode_series>
                            <ES_PRODUCT p_product_title="Bunk&apos;d S1">
                                <localTitles>
                                    <ES_PRODUCTTITLE pt_title="Camp Kikiwaka">
                                        <pt_type>
                                            <ESP_PRODUCTTITLETYPE name="FR_Scheduling Title"/>
                                        </pt_type>
                                    </ES_PRODUCTTITLE>
                                    <ES_PRODUCTTITLE pt_title="Bunk&apos;d">
                                        <pt_type>
                                            <ESP_PRODUCTTITLETYPE name="Swedish_EPG Title"/>
                                        </pt_type>
                                    </ES_PRODUCTTITLE>
                                </localTitles>
                                <euCategory>
                                    <ESP_EUCATEGORY name="Special">
                                        <popupLookups/>
                                    </ESP_EUCATEGORY>
                                </euCategory>
                            </ES_PRODUCT>
                        </p_episode_series>
                    </ES_PRODUCT>
                </txortxeventproduct>
            </ES_BMTXEVENT>
            <ES_BMTXEVENT>
                <txortxeventproduct>
                    <ES_PRODUCT p_product_type="Program" p_product_title="High School Musical">
                        <localTitles>
                            <ES_PRODUCTTITLE pt_title="School Musical, Premiers Pas sur Scène">
                                <pt_type>
                                    <ESP_PRODUCTTITLETYPE name="FR_Scheduling Title"/>
                                </pt_type>
                            </ES_PRODUCTTITLE>
                        </localTitles>
                    </ES_PRODUCT>
                </txortxeventproduct>
            </ES_BMTXEVENT>
            <ES_BMTXEVENT>
                <txortxeventproduct>
                    <ES_PRODUCT p_product_type="Episode">
                        <p_episode_series>
                            <ES_PRODUCT p_product_title="Miraculous Tales Of Ladybug &amp; Cat Noir S1">
                                <localTitles>
                                    <ES_PRODUCTTITLE pt_title="Blue Les aventures de Ladybug et Chat Noir">
                                        <pt_type>
                                            <ESP_PRODUCTTITLETYPE name="FR_Scheduling Title"/>
                                        </pt_type>
                                    </ES_PRODUCTTITLE>
                                </localTitles>
                            </ES_PRODUCT>
                        </p_episode_series>
                    </ES_PRODUCT>
                </txortxeventproduct>
            </ES_BMTXEVENT>
        </txevents>
    </ES_CONTINUITYDAY>
</continuitydays>

Неправильная сортировка Вывод:

<b>Title</b>
Apple Kikiwaka
Camp Kikiwaka
Camp Kikiwaka
Blue Les aventures de Ladybug et Chat Noir
School Musical, Premiers Pas sur Scène

Я хочу, как показано ниже

<b>Title</b>
Apple Kikiwaka
Blue Les aventures de Ladybug et Chat Noir
Camp Kikiwaka
Camp Kikiwaka
School Musical, Premiers Pas sur Scène

Мне нужно сортировать по заголовку столбца. Пожалуйста, помогите мне.

...