当搜索值在字符串中出现两次时,使用 Substring-Before 和 Substring-After 的 XSLT 格式不正确

问题描述 投票:0回答:0

我的 xml 中有以下地址,需要在输出文本文件中格式化为地址、城市、州/zip:

enter image description here

我正在使用 XSLT 2.0 这是我正在使用的 xslt 转换

<xsl:variable name="LF" select="'&#xa;'"/>
    <xsl:function name="placer:GetStreetAddress">
         <xsl:param name="addressString" as="xs:string"/>
         <xsl:value-of select="substring($addressString, 1, string-length(substring-    before($addressString,$LF)))"/>
     </xsl:function>
<xsl:function name="placer:GetCityStateZip">
       <xsl:param name="addressString" as="xs:string"/>
       <xsl:value-of select="substring($addressString, (string-length(substring-before($addressString,$LF))) + 5 + 1 )"/>
</xsl:function>

<xsl:function name="placer:GetCity">
       <xsl:param name="addressString" as="xs:string"/>
       <xsl:value-of select="substring-before(placer:GetCityStateZip($addressString),',')"/>
</xsl:function>

<xsl:function name="placer:GetStateZip">
       <xsl:param name="addressString" as="xs:string"/>
       <xsl:value-of select="substring(translate(substring-after($addressString,', '), ' ', ''),  1,7)"/>
</xsl:function>

<xsl:function name="placer:PadRight">
      <xsl:param name="length" as="xs:integer"/>
      <xsl:param name="padChar" as="xs:string"/>
      <xsl:param name="stringToPad"/>
      <xsl:value-of select="upper-case(substring(string-join(($stringToPad, for $i in (1 to $length) return $padChar),''),1,$length))"/>
</xsl:function>

文件地址显示为:JESSE ST'
'CHANDLERAZ85225

在向子字符串提供硬编码值时验证文件格式是否正确

xslt-2.0
© www.soinside.com 2019 - 2024. All rights reserved.