此时此刻,我正在使用XSLT&需要帮忙。我有这个XML文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<entries>
<entry>
<field>1</field>
</entry>
<entry>
<field>2</field>
</entry>
<entry>
<field>3</field>
</entry>
<entry>
<field>4</field>
</entry>
<entry>
<field>5</field>
</entry>
</entries>
我需要格式化这个XML以重新设置它:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<entries>
<entry field="1">
<entry field="2">
<entry field="3">
<entry field="4">
<entry field="5">
</entries>
但我重申了这一点:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><entries>
<entry field="1">
<entry field="2">
<entry field="3">
<entry field="4">
<entry field="5">
</entries>
XSLT文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
<xsl:output method="xml" indent="no" encoding="UTF-8" standalone="no"/>
<xsl:template match="entries">
<entries>
<xsl:apply-templates/>
</entries>
</xsl:template>
<xsl:template match="entry">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="field">
<xsl:text disable-output-escaping="yes"><entry field="</xsl:text><xsl:apply-templates/><xsl:text disable-output-escaping="yes">"></xsl:text>
</xsl:template>
</xsl:stylesheet>
正如我们所见,XSLT-stylesheet
只是删除标签,而不删除它们,留下空间。如何完全删除标签<entry>
&amp;将第一个<entries>
标记移到下一行?否则,如何使XML成为所需的形式?
答案 0 :(得分:0)
如果你真的必须输出格式错误的XML(即根本不是XML文档),那么我建议你使用text
作为输出方法并自己格式化缩进:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="entries">
<xsl:text><entries></xsl:text>
<xsl:apply-templates/>
<xsl:text> </entries></xsl:text>
</xsl:template>
<xsl:template match="entry">
<xsl:text> <entry field="</xsl:text>
<xsl:value-of select="field"/>
<xsl:text>"></xsl:text>
</xsl:template>
</xsl:stylesheet>