मैं XSLT
यह परिवर्तन कम से कम के साथ उन लोगों को छोड़कर योग और सभी नंबरों की औसत पाता 1.0 समाधान मूल्य - किसी भी लंबाई की संख्या के नोडसेट के लिए काम करता है:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:variable name="vMin">
<xsl:for-each select="/*/num">
<xsl:sort data-type="number"/>
<xsl:if test="position()=1">
<xsl:value-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="vNumsWithoutMin" select="/*/num[not(.=$vMin)]"/>
<xsl:variable name="vSumWithoutMin" select="sum($vNumsWithoutMin)"/>
<xsl:template match="/*">
<xsl:apply-templates select="$vNumsWithoutMin"/>
<xsl:value-of select="concat(' = ', $vSumWithoutMin)"/>
average = <xsl:value-of select=
"$vSumWithoutMin div count($vNumsWithoutMin)"/>
</xsl:template>
<xsl:template match="num">
<xsl:value-of select="."/>
<xsl:if test="not(position()=last())">
<xsl:text> + </xsl:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
जब यह प्रदान की XML दस्तावेज़ पर लागू किया जाता है:
<root>
<num>10</num>
<num>12</num>
<num>8</num>
</root>
चाहता था, सही परिणाम उत्पादन किया जाता है:
10 + 12 = 22
average = 11
द्वितीय। एक्सएसएलटी 2.0 समाधान
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="text"/>
<xsl:variable name="vMin" select="min(/*/num/number(.))"/>
<xsl:variable name="vNumsSansMin"
select="/*/num[not(number() eq $vMin)]/number(.)"/>
<xsl:variable name="vAvgSansMin"
select="avg($vNumsSansMin)"/>
<xsl:template match="/*">
<xsl:sequence select=
"(for $i in 1 to count($vNumsSansMin)
return
($vNumsSansMin[$i],
if(not($i eq count($vNumsSansMin)))
then ' + '
else()
)
),
' = ', sum($vNumsSansMin)
"/>
average = <xsl:sequence select="$vAvgSansMin"/>
</xsl:template>
</xsl:stylesheet>
स्रोत
2010-08-02 16:52:49
यह होमवर्क की तरह लगता है। इसलिए लोग "मुझे जवाब दें" प्रकार के प्रश्नों को अनदेखा करते हैं। आपने क्या प्रयास किया है दिखाएं कि आपने क्या किया है और क्या काम नहीं कर रहा है। –
@ जिम गैरीसन: मुझे नहीं पता कि xslt में अंकगणितीय परिचालन कैसे करें !!! यह मेरा घर का काम नहीं है। – brainless
@ जिम गैरीसन: मेरी समस्या बहुत बड़ी है। उदाहरण के लिए मैंने कोड का सिर्फ एक छोटा सा स्निपेट दिया है। और मैं एक स्कूल बच्चा नहीं हूँ !!! – brainless