以下是xml
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://xyz.com.zr/l8q/12Q/service/">
<soapenv:Header>
<ser:User>
<!-- comment -->
<Username/>
<password/>
</ser:User>
</soapenv:Header>
<soapenv:Body>
<mainTag>
<abc>1596056</abc>
<asd>12434F</asd>
<def>wert</def>
<childtag>
<asdf>1233</asdf>
<qwe>567</qwe>
</childtag>
</mainTag>
</soapenv:Body>
</soapenv:Envelope>
以下是我的XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="mainTag">
<xsl:result-document href="foo.txt" method="text">
01|<xsl:value-of select="abc"/>|<xsl:value-of select="asd"/>|<xsl:value-of select="childtag/asdf"/>|
02|<xsl:value-of select="def"/>|<xsl:value-of select="childtag/asdf"/>|
03|<xsl:value-of select="def"/>|<xsl:value-of select="childtag/qwe"/>|<xsl:value-of select="childtag/asdf"/>| |
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>
我遇到了如何删除文件中的空格(上面屏幕截图中提到的屏幕截图)
答案 0 :(得分:0)
从输出中消除空格的一种方法是从样式表中删除它们。而不是:
<xsl:template match="mainTag">
<xsl:result-document href="foo.txt" method="text">
01|<xsl:value-of select="abc"/>|<xsl:value-of select="asd"/>|<xsl:value-of select="childtag/asdf"/>|
02|<xsl:value-of select="def"/>|<xsl:value-of select="childtag/asdf"/>|
03|<xsl:value-of select="def"/>|<xsl:value-of select="childtag/qwe"/>|<xsl:value-of select="childtag/asdf"/>| |
</xsl:result-document>
</xsl:template>
使用:
<xsl:template match="mainTag">
<xsl:result-document href="foo.txt" method="text">01|<xsl:value-of select="abc"/>|<xsl:value-of select="asd"/>|<xsl:value-of select="childtag/asdf"/>|
02|<xsl:value-of select="def"/>|<xsl:value-of select="childtag/asdf"/>|
03|<xsl:value-of select="def"/>|<xsl:value-of select="childtag/qwe"/>|<xsl:value-of select="childtag/asdf"/>| |</xsl:result-document>
</xsl:template>
注意缺少缩进。这个,以及:
<xsl:strip-space elements="*"/>
将产生所需的结果。
当然,使用xsl:text
指令输出文字文本会更方便,例如:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:strip-space elements="*"/>
<xsl:template match="mainTag">
<xsl:result-document href="foo.txt" method="text">
<xsl:text>01|</xsl:text>
<xsl:value-of select="abc"/>
<xsl:text>|</xsl:text>
<xsl:value-of select="asd"/>
<xsl:text>|</xsl:text>
<xsl:value-of select="childtag/asdf"/>
<xsl:text>| 02|</xsl:text>
<xsl:value-of select="def"/>
<xsl:text>|</xsl:text>
<xsl:value-of select="childtag/asdf"/>
<xsl:text>| 03|</xsl:text>
<xsl:value-of select="def"/>
<xsl:text>|</xsl:text>
<xsl:value-of select="childtag/qwe"/>
<xsl:text>|</xsl:text>
<xsl:value-of select="childtag/asdf"/>
<xsl:text>| |</xsl:text>
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>