2017-08-14 1 views
0

Ich versuche, eine XML-Datei in eine Textdatei mit MS Build XslTransformationTask (https://msdn.microsoft.com/en-us//library/ff598688.aspx) zu transformieren.XSLT newline funktioniert nicht in MS Build Aufgabe

Mein Problem ist, dass ich nur neue Zeilen drucken kann, wenn ich sie auch mit anderen (nicht-Leerzeichen) Text kombinieren. So zum Beispiel <xsl:text>&#10;</xsl:text> erzeugt keine neue Zeile, aber <xsl:text>&#10;sampletext</xsl:text> tut. Ich versuchte andere Varianten wie <xsl:text>&#xd;</xsl:text> und <xsl:text>&#xa;</xsl:text> mit demselben Ergebnis.

MS Build-Aufgabe:

<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>&#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> 

Antwort

0

this helps

<xml> 
    <property>1</property> 
    <property>2</property> 
    <property>3</property> 
</xml> 

Beispiel 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> 

Erzeugt

1 
2 
3 
Verwandte Themen