XML 到制表符分隔的文本 [英] XML to Tab delimited Text

查看:22
本文介绍了XML 到制表符分隔的文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

需要 XML、XSLT 专家的帮助.

need the help from the XML, XSLT experts.

我有 2 个以 XML 格式从系统导出的示例记录,如下所示.我喜欢使用 XSLT 将数据转换为制表符分隔的文本,如下所示 https:///docs.google.com/spreadsheet/ccc?key=0AgOV9Or8-zdzdG8yWTlRb1hWeUhzZG02MHA5TGxqR2c

I have 2 sample records exported from a system in XML format which is shown below. I like to use XSLT to convert the data to tab delimited text as shown here https://docs.google.com/spreadsheet/ccc?key=0AgOV9Or8-zdzdG8yWTlRb1hWeUhzZG02MHA5TGxqR2c

转换对于 XML 新手来说有点复杂.如果有人可以通过创建 XSL 文件来帮助我,我将不胜感激.

The transformation is a bit complex for a XML novice. I would appreciate if someone could help me by creating a XSL file.

谢谢.

<?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>

推荐答案

这样的事情应该是一个很好的起点

Something like that should work as a good starting point

<?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>&#x9;</xsl:text>
        <xsl:value-of select="TIL"/>
        <xsl:text>&#x9;</xsl:text>
        <xsl:value-of select="SET"/>
        <xsl:text>&#x9;</xsl:text>
        <!-- all other fields... -->
        <xsl:value-of select="SystemID"/>
        <!-- line feed char -->
        <xsl:text>&#10;</xsl:text>
        </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

这篇关于XML 到制表符分隔的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆