Xml 使用换行时出现空行
我的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
<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() > 1"></xsl:if>
<xsl:text>
</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() > 1"><xsl:text>
</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>
</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
如果有帮助,请告诉我。感谢您的快速回复,我尝试了此方法,但无效。太好了,请接受答案并欢迎使用堆栈溢出!