使用wordml在XSLT中添加回车符

时间:2018-05-24 15:50:03

标签: xml xslt-1.0 wordml

我正在使用XSLT(1.0)使用WordML生成Word文档。我有不同的表,在其中一列中我需要添加由回车符分隔的值。

I.e:我需要代替Lot1Lot2Lot3

Lot1
Lot2
Lot3

我搜索了所有相关主题但我找不到任何可以解决我的问题的解决方案。我曾尝试在<w:br/>内使用<xsl:text></xsl:text><xsl:text>或十进制代码&amp;#10 /&amp;#13但无法正常工作,因为我仍然看到相同的结果线。

XML:

<Root>
 <elemName>Test</elemName>
 <elemDescription>Description</elemDescription>
 <Items>
  <Item1Flag>Y</Item1Flag>
  <Item1Value>123213123</Item1Flag>
 </Items> 
 <Items>
  <Item1Flag>Y</Item1Flag>
  <Item1Value>12223123</Item1Flag>
 </Items>
 <Items>
  <Item1Flag>Y</Item1Flag>
  <Item1Value>1232423</Item1Flag>
 </Items>
</Root>

样式表:

...
<w:t><xsl:call-template name="concatItems">
<xsl:with-param name="elements" select="Items[Item1Flag='Y']/Item1Value"/>
</xsl:call-template>
</w:t>
...

<!-- Template -->
<xsl:template name="concatItems">
  <xsl:param name="elements"/>
  <xsl:variable name="result">
    <xsl:for-each select="$elements">
      <xsl:value-of select="."/>
      <xsl:if test="position()!=last()"><w:br/></xsl:if>
    </xsl:for-each>
  </xsl:variable>
  <xsl:value-of select="$result"/>  
</xsl:template>

1 个答案:

答案 0 :(得分:0)

我没有使用模板,而是直接在样式表中调用for-each并使用<w:br/>

<w:t><xsl:for-each select="Items[Item1Flag='Y']/Item1Value"><xsl:value-of select="."/><xsl:if test="position()!=last()"><w:br/></xsl:if></xsl:for-each></w:t>