我尝试将xml文件转换为具有MS Build XslTransformationTask (https://msdn.microsoft.com/en-us//library/ff598688.aspx)的文本文件。
我的问题是,如果我还将它们与其他(非空格)文本组合,我只能打印新行。例如,<xsl:text> </xsl:text>
不会生成换行符,但<xsl:text> sampletext</xsl:text>
会生成换行符。
我尝试了其他变种,例如<xsl:text>
</xsl:text>
和<xsl:text>
</xsl:text>
,结果相同。
MS Build Task:
<Target AfterTargets="Build" Name="Test">
<XslTransformation XslInputPath="config.xslt" XmlInputPaths="config.schema.xml" OutputPaths="out.txt" />
</Target>
XSLT doc:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='text' />
<xsl:template match="/root/properties">
<xsl:for-each select="./*">
<!--working new line character:-->
<xsl:text> name: </xsl:text>
<xsl:value-of select="name(.)" />
<!--not working:-->
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="text()" />
</xsl:stylesheet>
答案 0 :(得分:0)
希望这有帮助
<xml>
<property>1</property>
<property>2</property>
<property>3</property>
</xml>
示例XSL
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='text' />
<xsl:template match="/">
<xsl:for-each select='//property'>
<xsl:if test='position() > 1 '><xsl:text>
</xsl:text></xsl:if>
<xsl:value-of select='.'/>
</xsl:for-each>
</xsl:template>
创建
1
2
3