我有以下文本文件(.txt):
IT000000000000000545Panquecitos 2 100gr BIM OLA
IT000000000000000797Dalmata 45g MLA
IT000000000000001782Quequito max 80g Arrorico BIM
我读了文件并得到了XML,但是我的代码仅读取第一行,并且需要读取所有数据。例如:
<items>
<item>
<nick>IT</nick>
<num>000000000000000545</nick>
<desc>Panquecitos 2 100gr BIM OLA</nick>
</item>
<item>
<nick>IT</nick>
<num>000000000000000797</nick>
<desc>Dalmata 45g MLA</nick>
</item>
...
</items>
这是我读取文件的代码:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:variable name="vText" select="replace(unparsed-text('file:///C:/Users/Quality/Desktop/test.txt'),'\r','')"/>
<xsl:template name="main" match="/">
<items>
<xsl:for-each select="$vText">
<item>
<xsl:element name="nick"><xsl:value-of select="substring($vText,1,2)"></xsl:value-of></xsl:element>
<xsl:element name="num"><xsl:value-of select="substring($vText,3,18)"/></xsl:element>
<xsl:element name="desc"><xsl:value-of select="substring($vText,21,40)"/></xsl:element>
</item>
</xsl:for-each>
</items>
</xsl:template>
</xsl:stylesheet>
我猜您想test.txt
通过换行符标记的内容并对其进行处理。我希望这个XSLT可以帮助:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:variable name="vText" select="tokenize(unparsed-text('file:///C:/Users/Quality/Desktop/test.txt'),'
')"/>
<xsl:template name="main" match="/">
<items>
<xsl:for-each select="$vText">
<item>
<xsl:element name="nick">
<xsl:value-of select="substring(.,1,2)"/>
</xsl:element>
<xsl:element name="num">
<xsl:value-of select="substring(.,3,18)"/>
</xsl:element>
<xsl:element name="desc">
<xsl:value-of select="substring(.,21,40)"/>
</xsl:element>
</item>
</xsl:for-each>
</items>
</xsl:template>
</xsl:stylesheet>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句