2017-08-14 11 views
0

MSビルドXslTransformationTask (https://msdn.microsoft.com/en-us//library/ff598688.aspx)を使用してxmlファイルをテキストファイルに変換しようとしています。MSビルドタスクでXSLT改行が機能しない

私の問題は、他の(スペースではない)テキストと組み合わせるだけで新しい行を印刷できることです。したがって、たとえば<xsl:text>&#10;</xsl:text>は改行を生成しませんが、<xsl:text>&#10;sampletext</xsl:text>は改行を生成します。 <xsl:text>&#xd;</xsl:text><xsl:text>&#xa;</xsl:text>のような他の変種を試しましたが、同じ結果が出ました。

MSタスクをビルドします。

<Target AfterTargets="Build" Name="Test"> 
<XslTransformation XslInputPath="config.xslt" XmlInputPaths="config.schema.xml" OutputPaths="out.txt" /> 
</Target> 

XSLTドキュメントを:

<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>&#10;name: </xsl:text> 
<xsl:value-of select="name(.)" /> 

<!--not working:--> 
<xsl:text>&#10;</xsl:text> 

</xsl:for-each> 

</xsl:template> 

<xsl:template match="text()" /> 
</xsl:stylesheet> 

答えて

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>&#xd;</xsl:text></xsl:if> 
     <xsl:value-of select='.'/> 
    </xsl:for-each> 
</xsl:template> 
を支援

1 
2 
3 
を作成します。
関連する問題