這有點讓我發瘋……我有一個 xslt,它根據選擇/何時傳遞一個值……它可以作業,但問題是它正在向后作業。除非我以錯誤的方式思考方程式……這是 XML 的一部分……
<LayoutIntent Class="Intent" Status="Available" ID="id00010">
<FinishedDimensions DataType="ShapeSpan" Preferred="867.330708661417 498.897637795276 0.0"/>
</LayoutIntent>
這是 xslt 部分...
<xsl:variable name="width">
<xsl:value-of select="format-number(number(substring(ResourcePool/LayoutIntent/FinishedDimensions/@Preferred,1,16))div 72,'#.##')"/>
</xsl:variable>
<xsl:variable name="height">
<xsl:value-of select="format-number(number(substring(ResourcePool/LayoutIntent/FinishedDimensions/@Preferred,18,16))div 72,'#.##')"/>
</xsl:variable>
<finishedWidth>
<xsl:value-of select="$width"/>
</finishedWidth>
<finishedHeight>
<xsl:value-of select="$height"/>
</finishedHeight>
<xsl:variable name="code">
<xsl:choose>
<xsl:when test="$width > $height">1</xsl:when>
<xsl:when test="$width < $height">0</xsl:when>
</xsl:choose>
</xsl:variable>
<orientation>
<xsl:value-of select="$code"/>
</orientation>
如果寬度大于高度,我希望為 1,但我得到 0,反之亦然
uj5u.com熱心網友回復:
比較數字,而不是格式化的字串。您有兩個問題導致它比較大于或小于字串。
- 您正在使用
xsl:value-of選擇一個字串 - 您正在申請
format-number()生產一個字串
洗掉 value-of 并讓變數選擇除法的數字乘積,然后format-number()向下移動到要列印格式化數字的位置。
您可能會考慮將第二個更改xsl:where為xsl:otherwise. 如果它是一個或另一個,重復相反的邏輯是沒有意義的。
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:template match="/">
<xsl:variable name="width" as="item()" select="number(substring(ResourcePool/LayoutIntent/FinishedDimensions/@Preferred,1,16))div 72"/>
<xsl:variable name="height" as="item()" select="number(substring(ResourcePool/LayoutIntent/FinishedDimensions/@Preferred,18,16))div 72"/>
<finishedWidth>
<xsl:value-of select="format-number($width,'#.##')"/>
</finishedWidth>
<finishedHeight>
<xsl:value-of select="format-number($height,'#.##')"/>
</finishedHeight>
<xsl:variable name="code">
<xsl:choose>
<xsl:when test="$width > $height">1</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<orientation>
<xsl:value-of select="$code"/>
</orientation>
</xsl:template>
</xsl:stylesheet>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/434184.html
