需要XML,XSLT专家的帮助。
我有一个以XML格式从系统导出的2个样本记录,如下所示。我喜欢使用XSLT将数据转换为制表符分隔文本,如https://docs.google.com/spreadsheet/ccc?key=0AgOV9Or8-zdzdG8yWTlRb1hWeUhzZG02MHA5TGxqR2c
所示对于XML新手来说,转换有点复杂。如果有人可以通过创建XSL文件来帮助我,我将不胜感激。
感谢。
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<Results productTitle="XYZ DB/TextWorks" productVersion="11.00" xmlns:inm="http://www.xyz.com/webpublisher/query">
<Recordset setCount="2">
<Record setEntry="0">
<ID>282</ID>
<TIL>TIL value</TIL>
<SET>SET value</SET>
<NOA>NOA value</NOA>
<NOQ>NOQ value 1, NOQ value 2, NOQ value 3, NOQ value 4</NOQ>
<LAN>LAN value</LAN>
<CAL>CAL value</CAL>
<INP>INP value</INP>
<SUT>SUT value</SUT>
<SUG>SUG value</SUG>
<EDI>EDI value</EDI>
<MEP />
<NOG>NOG value</NOG>
<IDX>IDX value</IDX>
<SAU />
<Database>Database value</Database>
<Format>Format value 1</Format>
<Format>Format value 2</Format>
<Format>Format value 3</Format>
<Format>Format value 4</Format>
<DES />
<TYP />
<UTI />
<SUR />
<DATE />
<SystemID>530</SystemID>
</Record>
<Record setEntry="1">
<ID>373</ID>
<TIL>TIL value</TIL>
<SET>SET value</SET>
<NOA>NOA value</NOA>
<NOQ>NOQ value 1, NOQ value 2, NOQ value 3, NOQ value 4</NOQ>
<LAN>LAN value 1</LAN>
<LAN>LAN value 2</LAN>
<LAN>LAN value 3</LAN>
<CAL>CAL value</CAL>
<INP>INP value</INP>
<SUT>SUT value</SUT>
<SUG />
<EDI>EDI value</EDI>
<MEP />
<NOG>NOG value</NOG>
<IDX>IDX value</IDX>
<SAU />
<Database>Database value</Database>
<Format>Format value</Format>
<DES />
<TYP />
<UTI />
<SUR />
<DATE />
<SystemID>611</SystemID>
</Record>
</Recordset>
</Results>
答案 0 :(得分:14)
这样的事情应该是一个很好的起点
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="//Recordset">
<xsl:for-each select="Record">
<xsl:value-of select="ID"/>
<!-- tab char -->
<xsl:text>	</xsl:text>
<xsl:value-of select="TIL"/>
<xsl:text>	</xsl:text>
<xsl:value-of select="SET"/>
<xsl:text>	</xsl:text>
<!-- all other fields... -->
<xsl:value-of select="SystemID"/>
<!-- line feed char -->
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>