1

大文字と小文字を区別せずに値を取得するのに問題があります。ユーザーが使用する機器に関するデータを入力するときに、機器番号として 38e135 を入力する場合がありますが、後でフォームに 38E135 を入力する場合があります。機器 ID をループするときは、これらを 1 つとして扱う必要があります。

これを試すと、2 つの異なる機器番号として取得されます。

<xsl:key name="distinctEquipNum" match="//EquipmentNumber" use="."/>

翻訳機能を使用しようとすると、そのうちの 1 つしか取得できません。

<xsl:key name="distinctEquipNum" match="//EquipmentNumber" use="translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/>

これは、データを取得するために使用するループです

<xsl:for-each select=".//EquipmentNumber[generate-id() = generate-id(key('distinctEquipNum', .)[1])]">
        <xsl:variable name="equipNum" select="."></xsl:variable>
        <td><xsl:value-of select="$equipNum"/></td>

機器番号をループして大文字と小文字を区別しない方法はありますか?

これは、私が使用している XML のサンプルです。

<Timesheet>
    <Equipment>
      <EquipmentWorkOrder>
         <EquipmentWorkOrderNumber>220923134</EquipmentWorkOrderNumber>
<EquipmentDetail>
            <EquipmentMileage>1123</EquipmentMileage>
            <EquipmentHourMeter>Hour Meter</EquipmentHourMeter>
<EquipmentType>Bucket truck</EquipmentType>
            <EquipmentNumber>38e135</EquipmentNumber>
            <MondayHours>6</MondayHours>
            <TuesdayHours>Tuesday</TuesdayHours>
            <WednesdayHours>1</WednesdayHours>
            <ThursdayHours>Thursday</ThursdayHours>
            <FridayHours>Friday</FridayHours>
            <SaturdayHours>Saturday</SaturdayHours>
            <SundayHours>Sunday</SundayHours>
        </EquipmentDetail>
    </EquipmentWorkOrder>
    <EquipmentWorkOrder>
        <EquipmentWorkOrderNumber>220923378</EquipmentWorkOrderNumber>
        <EquipmentDetail>
            <EquipmentMileage>72155</EquipmentMileage>
            <EquipmentHourMeter>Hour Meter</EquipmentHourMeter>
            <EquipmentType>4x4 Pickup</EquipmentType>
            <EquipmentNumber>2a3557</EquipmentNumber>
            <MondayHours>6</MondayHours>
            <TuesdayHours>3</TuesdayHours>
            <WednesdayHours>5</WednesdayHours>
            <ThursdayHours>2</ThursdayHours>
            <FridayHours>Friday</FridayHours>
            <SaturdayHours>2</SaturdayHours>
            <SundayHours>Sunday</SundayHours>
        </EquipmentDetail>
    </EquipmentWorkOrder>
    <EquipmentWorkOrder>
        <EquipmentWorkOrderNumber>220923134</EquipmentWorkOrderNumber>
        <EquipmentDetail>
            <EquipmentMileage>Mileage</EquipmentMileage>
            <EquipmentHourMeter>133</EquipmentHourMeter>
            <EquipmentType>Back Hoe</EquipmentType>
            <EquipmentNumber>122</EquipmentNumber>
            <MondayHours>Monday</MondayHours>
            <TuesdayHours>8</TuesdayHours>
            <WednesdayHours>3</WednesdayHours>
            <ThursdayHours>Thursday</ThursdayHours>
            <FridayHours>Friday</FridayHours>
            <SaturdayHours>Saturday</SaturdayHours>
            <SundayHours>Sunday</SundayHours>
        </EquipmentDetail>
    </EquipmentWorkOrder>
    <EquipmentWorkOrder>
        <EquipmentWorkOrderNumber>220925520</EquipmentWorkOrderNumber>
        <EquipmentDetail>
            <EquipmentMileage>72155</EquipmentMileage>
            <EquipmentHourMeter>Hour Meter</EquipmentHourMeter>
            <EquipmentType>Bucket truck</EquipmentType>
            <EquipmentNumber>38E135</EquipmentNumber>
            <MondayHours>6</MondayHours>
            <TuesdayHours>Tuesday</TuesdayHours>
            <WednesdayHours>1</WednesdayHours>
            <ThursdayHours>Thursday</ThursdayHours>
            <FridayHours>Friday</FridayHours>
            <SaturdayHours>Saturday</SaturdayHours>
            <SundayHours>Sunday</SundayHours>
        </EquipmentDetail>
    </EquipmentWorkOrder>
</Equipment></Timesheet>
4

1 に答える 1

2

キーを定義したときに使用したのと同じ変換を、キーから取得するために使用する値に適用する必要があります。つまり、キーが

<xsl:key name="distinctEquipNum" match="EquipmentNumber"
 use="translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/>

Muenchian グループ化式は同じことを行う必要がありますtranslate

<xsl:for-each select=".//EquipmentNumber[generate-id() =
    generate-id(key('distinctEquipNum',
      translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')
    )[1])]">

//(キーのmatch式には必要ないことに注意してください。使用するだけですmatch="EquipmentNumber"

于 2013-03-06T14:47:22.653 に答える