0

入力ドキュメントに可能な値の数が限られています。これらの値は集計として読み取られ、既存の最高の優先度が単一の値として報告される必要があります。たとえば、次のようになります。

私の可能な入力タグがあった場合:(ただし、すべてが常に存在するわけではなく、注文は保証されません)

<SomeInput>A</SomeInput>
<SomeInput>B</SomeInput>
<SomeInput>C</SomeInput>
<SomeInput>D</SomeInput>

私の優先順位はA、次にB、次にC、そしてDでした。この場合、出力は次のようになります。

<SomeOutput>A</SomeOutput>

の場合:

<SomeInput>D</SomeInput>
<SomeInput>B</SomeInput>

次の結果が得られます。

<SomeOutput>B</SomeOutput>

前もって感謝します

4

1 に答える 1

0

使用:

/*/*[. eq min(/*/*/string())][1]

完全な変換は次のとおりです。

<xsl:stylesheet version="2.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>
    <xsl:strip-space elements="*"/>

 <xsl:template match="/*/*[. eq min(/*/*/string())][1]" priority="2">
     <someOutput><xsl:apply-templates/></someOutput>
 </xsl:template>
 <xsl:template match="/*/*"/>
</xsl:stylesheet>

この変換が次の XML ドキュメント(整形式の XML ドキュメントにするために単一の最上位要素にラップされた提供されたフラグメント) に適用される場合:

<t>
    <SomeInput>A</SomeInput>
    <SomeInput>B</SomeInput>
    <SomeInput>C</SomeInput>
    <SomeInput>D</SomeInput>
</t>

必要な正しい結果が生成されます。

<SomeOutput>A</SomeOutput>

この XML ドキュメントに同じ変換を適用すると、次のようになります。

<t>
    <SomeInput>D</SomeInput>
    <SomeInput>B</SomeInput>
</t>

ここでも、必要な正しい結果が生成されます。

<SomeOutput>B</SomeOutput>
于 2013-01-17T23:46:04.527 に答える