在XSLT输出中放置断行

时间:2012-07-06 12:20:40

标签: xml xslt

XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<ProcessData>
    <SOAPAction>urn:echo</SOAPAction>
    <Content_Type>text/xml;charset=UTF-8</Content_Type>
    <uname>sarah_brcm</uname>
    <pwd>BRCM_UVLwNhjrA5fbgqkUNdxQXMfcCDJ</pwd>
</ProcessData>

XSLT:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
    <xsl:copy-of select="ProcessData/SOAPAction/text()"/>
    <br/>
    <xsl:copy-of select="ProcessData/Content_Type/text()"/>
</xsl:template>
</xsl:stylesheet>

但是输出不包含前两行之间的断行。

2 个答案:

答案 0 :(得分:1)

我已经在xslttest.appspot.com上检查了你的代码,但它确实有效。你如何进行转型?在浏览器中?的libxslt? ...撒克逊?你也可能需要“html”输出方法,而不是“xml”

答案 1 :(得分:1)

<br/>用于输出HTML。如果您想在数据节点中插入换行符,建议您使用&#13;

<强> HTML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
    <xsl:copy-of select="ProcessData/SOAPAction/text()"/>
    <br/>
    <xsl:copy-of select="ProcessData/Content_Type/text()"/>
</xsl:template>
</xsl:stylesheet>

<强> XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
    <xsl:copy-of select="ProcessData/SOAPAction/text()"/>
       <xsl:text>&#13;</xsl:text>
       <xsl:text>&#13;</xsl:text>
    <xsl:copy-of select="ProcessData/Content_Type/text()"/>
</xsl:template>
</xsl:stylesheet>