我正在尝试使用括号括起来的extendedDescription字段内联描述,除非没有extendedDescription。
我在格式化输出和if语句上找到了很多答案。但是,我不是程序员,也无法按照我希望的方式工作。
如果有人能帮助我,我会很感激。谢谢!
以下是代码:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:inr="http://mycompany.com/mynamespace">
<xsl:include href="../format.xsl"/>
<!-- TDS CR5 Format -->
<xsl:output method="text" media-type="text/plain" encoding="iso-8859-1"/>
<xsl:template match="/">
<xsl:variable name="gridOut" select="inr:SetGridOut(number(InRoads/@outputGridScaleFactor))" />
<xsl:choose>
<xsl:when test="$xslShowHelp = 'true'">
<xsl:call-template name="StyleSheetHelp"/>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="//GeometryPoint[@name]">
<xsl:text/>
<xsl:value-of select="@name"/><xsl:text>,</xsl:text>
<xsl:value-of select="inr:northingFormat(number(@northing), $xslNorthingPrecision)"/><xsl:text>,</xsl:text>
<xsl:value-of select="inr:eastingFormat(number(@easting), $xslEastingPrecision)"/><xsl:text>,</xsl:text>
<xsl:value-of select="inr:elevationFormat(number(@elevation), $xslElevationPrecision)"/><xsl:text>,</xsl:text>
<xsl:value-of select="@description"/>(<xsl:value-of select="@extendedDescription"/>)<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="StyleSheetHelp">
<xsl:text>Notes

</xsl:text>
<xsl:text> You must include at least one cogo point in the Cogo
</xsl:text>
<xsl:text> Points > Include field or one horizontal alignment with
</xsl:text>
<xsl:text> named points in the Horizontal Alignments > Include
</xsl:text>
<xsl:text> field on the Tools > XML Reports > Geometry command to
</xsl:text>
<xsl:text> get results from this report.

</xsl:text>
<xsl:text> Most style sheets in the DataCollection directory do
</xsl:text>
<xsl:text> not honor Tools > Format Options with the exception of
</xsl:text>
<xsl:text> precision, where practical.

</xsl:text>
<xsl:text>Copyright 2006 Bentley Systems, Inc
</xsl:text>
</xsl:template>
</xsl:stylesheet>
此处的输出很好,除非没有extendedDescription,因为我在结果文件中得到()。
示例输出(现在):
CS300,848822.7010,617517.7670,1022.26,6615(SES#44)
CSG002,859658.2240,607167.2050,998.76,6652()
示例输出(想要):
CS300,848822.7010,617517.7670,1022.26,6615(SES#44)
CSG002,859658.2240,607167.2050,998.76,6652
再次感谢能帮助我的人。
答案 0 :(得分:2)
尝试更改:
(<xsl:value-of select="@extendedDescription"/>)
为:
<xsl:if test="string(@extendedDescription)">
<xsl:value-of select="concat('(',@extendedDescription,')')"/>
</xsl:if>