Xml 使用换行时出现空行

Xml 使用换行时出现空行,xml,xslt,xslt-1.0,Xml,Xslt,Xslt 1.0,我的XML如下所示: <Description> <LongDescription>a</LongDescription> <LongDescription>b</LongDescription> <LongDescription>c</LongDescription> </Description> A. B C 所需输出为: <Description> <LongDescri

我的XML如下所示:

<Description>
<LongDescription>a</LongDescription>
<LongDescription>b</LongDescription>
<LongDescription>c</LongDescription>
</Description>

A.
B
C
所需输出为:

<Description>
<LongDescription>a
 b
 c</LongDescription>
</Description>

A.
B
C
我正在使用以下代码获取输出:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
  <xsl:output omit-xml-declaration="no" indent="yes" />
  <xsl:strip-space elements="*" />

  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*" />
    </xsl:copy>
  </xsl:template>

  <xsl:template match="Description">
    <xsl:copy>
      <xsl:apply-templates select="*[not(self::LongDescription)]" />
      <LongDescription>
        <xsl:apply-templates select="LongDescription/text()" />
      </LongDescription>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="LongDescription/text()">
    <xsl:if test="position() &gt; 1"></xsl:if>
    <xsl:text>&#xA;</xsl:text>
    <xsl:value-of select="."/> 
  </xsl:template>
</xsl:stylesheet>
但利用这一点,我得到的结果是:

<?xml version="1.0" encoding="UTF-8"?>
<Description>
<LongDescription>
a
b
c</LongDescription>
</Description>

A.
B
C
我希望“a”出现在长描述之外,而不是在下一行

我试过使用strip和normalize选项,但不起作用

但这些选择并不奏效

有人能尽快帮我吗

提前感谢,,
Ankit

我刚刚删除了LongDescription中的新行

  <LongDescription><xsl:apply-templates select="LongDescription/text()" />
  </LongDescription>

这个模板有点奇怪,应该是这样的:

<xsl:template match="LongDescription/text()">
  <xsl:if test="position() &gt; 1"><xsl:text>&#xA;</xsl:text></xsl:if>
  <xsl:value-of select="."/> 
</xsl:template>

最简单的方法是-

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">
    <xsl:output omit-xml-declaration="no" indent="yes" />
    <xsl:strip-space elements="*" />

    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*" />
        </xsl:copy>
    </xsl:template>

    <xsl:template match="Description">
        <xsl:copy>
           <LongDescription>
                <xsl:apply-templates select="LongDescription/text()" />
            </LongDescription>
        </xsl:copy>
    </xsl:template>

   <xsl:template match="LongDescription[1]/text()" priority="1">
        <xsl:value-of select="."/> 
    </xsl:template>

    <xsl:template match="LongDescription/text()">
        <xsl:text>&#xA;</xsl:text><xsl:value-of select="."/> 
    </xsl:template>

</xsl:stylesheet>
输出-

<?xml version="1.0" encoding="UTF-8"?>
<Description>
   <LongDescription>a
b
c</LongDescription>
</Description>

A.
B
C

如果有帮助,请告诉我。感谢您的快速回复,我尝试了此方法,但无效。太好了,请接受答案并欢迎使用堆栈溢出!