【问题标题】:How to convert .csv file to xml using XSLT 1.0?如何使用 XSLT 1.0 将 .csv 文件转换为 xml?
【发布时间】:2014-11-17 04:55:33
【问题描述】:

我生成了一个 .csv 文件,我想使用 xslt 将其转换为 xml。

如何做到这一点?我不擅长 xslt。请帮帮我。

谢谢。

这是我的 .csv 文件

 CONTRACT_NUMBER,CLIENT_NAME_FULL,STREET_ADDRESS,REGISTRY_NO,DATE_RECEIVED,STATUS,REMARKS
 3300016335,name,"address",1_A,3/26/2014,Received,with signature

所需的 xml:

  <root>
    <row>
       <CONTRACT_NUMBER>CONTRACT_NUMBER</CONTRACT_NUMBER>
       <CLIENT_NAME_FULL>CLIENT_NAME_FULL</CLIENT_NAME_FULL>
       <STREET_ADDRESS>STREET_ADDRESS</STREET_ADDRESS>
       <REGISTRY_NO>REGISTRY_NO</REGISTRY_NO>
       <DATE_RECEIVED>DATE_RECEIVED</DATE_RECEIVED>
       <STATUS>STATUS</STATUS>
       <REMARKS>REMARKS</REMARKS>
   </row>
   <row>
       <CONTRACT_NUMBER>345678912</CONTRACT_NUMBER>
       <CLIENT_NAME_FULL>name</CLIENT_NAME_FULL>
       <STREET_ADDRESS>address</STREET_ADDRESS>
       <REGISTRY_NO>122345</REGISTRY_NO>
       <DATE_RECEIVED>10/10/14</DATE_RECEIVED>
       <STATUS>fghdsjkls</STATUS>
       <REMARKS>fdhjgkdfl</REMARKS>
   </row>
  </root>

【问题讨论】:

  • XSLT 用于 XML 到 XML 的转换。
  • 我认为 xslt 不限于 xml 到 xml 的转换
  • 好吧,要明确一点,XSLT 是用于 XML 到 * 的转换。您不会从 CSV 转到 XML,而是从 XML 转到 CSV。
  • XSLT 不限于“XML 到 XML”的转换。它也可以将 XML 转换为其他格式。 input 仅限于 XML,而不是输出。你能用一句话解释一下为什么要使用 XSLT 吗?

标签: xml csv xslt xslt-1.0


【解决方案1】:

XSLT 无法满足您的要求(CSV 到 XML)。

From wikipedia:

XSLT(可扩展样式表语言转换)是一种用于将 XML 文档转换为其他 XML 文档或其他对象(例如网页的 HTML、纯文本或 XSL 格式化对象)的语言,然后可以将其转换为 PDF、PostScript 和 PNG .

XSLT 可以获取源 XML 文档并将其转换为不同的文档(通常是 XML,但它可以是任何东西),但 XSLT 不是将 CSV 数据转换为不同格式的合适工具。

【讨论】:

  • 我明白了,但是,我已经阅读了一篇关于将 csv 转换为 xml 的博客/文章,例如 andrewjwelch.com/code/xslt/csv/csv-to-xml_v2.html
  • 如果你决定使用最不合适的工具来完成任何类型的工作,那么如果你非常小心,例如,你可以成功地用鸡尾酒杯的边缘拧入螺丝.只要告诉任何反对它的人,你已经看到人们这样做了。在所有其他情况下,请听取具有拧螺丝经验的人的良好建议并使用合适的工具。
  • @User014019 您已标记您的问题 XSLT 1.0。您链接到的文章依赖于 XSLT 2.0。如果您使用的是 XSLT 1.0 处理器,那么您将无法使用其中显示的任何技术。无论如何,XSLT(在任何版本中)的优势在于处理 XML。在解析文本时(例如逗号分隔值),它是一个非常糟糕的工具。
  • 当然可以用 XSLT 来完成。 XSLT 1.0 无法做到这一点。虽然它解析文本的功能可能有限,但它们足以完成解析 CSV 的工作,而且这方面的任何限制都可以通过它在生成 XML 输出方面比其他工具好得多这一事实得到补偿。
  • “弥补了它在生成 XML 输出方面比其他工具好得多的事实” 我从来没有发现 XSLT 擅长任何事情。语法笨拙且难以阅读,几乎难以理解。如果 XSLT 真的是生成 XML 的好工具,那么更多的开发人员会使用它。相反,像把手这样的模板系统更容易使用。
【解决方案2】:

您可能可以使用一些字符串操作函数来完成此操作,但我强烈建议您不要这样做。特别是如果您的架构基本上相当于:

<row>
    <column /><column /><column /><column />...
</row>
....

对于这么简单的事情,您真的不需要 XSLT。使用正确的工具来完成这项工作,从给出的信息来看,这不是 XSLT 的工作。

【讨论】:

    猜你喜欢
    • 2011-12-25
    • 2019-12-15
    • 2019-02-02
    • 1970-01-01
    • 2017-05-23
    • 2011-10-28
    相关资源
    最近更新 更多