如何将CSV导出为具有结构化数据的XML

时间:2014-09-25 02:04:07

标签: xml excel csv

我被困在这里。我在CSV中有一组看起来像这样的数据:

Company Dojo, http://link1.com
Company Dojo, http://link2.com
Company Dojo, http://link3.com
Company Dojo, http://link4.com
Company Alpha, http://link1.com
Company Alpha, http://link2.com
Company Alpha, http://link3.com
Company Alpha, http://link4.com
Company Alpha, http://link5.com

现在,我想做的是将其转换为XML文件以进行导入。我并没有真正理解XML,并且花了大部分时间试图理解一种简单的方法将数据转换为结构化的xml文件,如下所示:

<company>
    <name>Company Dojo</name>
       <links>
         <url>http://link1.com</url>
         <url>http://link2.com</url>
         <url>http://link3.com</url>
         <url>http://link4.com</url>
       </links>
</company>

<company>
     <name>Company Alpha</name>
       <links>
         <url>http://link1.com</url>
         <url>http://link2.com</url>
         <url>http://link3.com</url>
         <url>http://link4.com</url>
         <url>http://link5.com</url>
       </links>
</company>

现在,有没有办法从excel或xml编辑器执行此操作?有人可以帮助我指出如何获得这样的数据结构的正确方向吗?基本上需要按公司名称分组,然后为每个公司提供包含其链接的数据子集。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我认为这项特定任务没有任何工具,因为格式可能非常随意。您可能对this website感兴趣。

既然您了解PHP,一种可能的解决方案就是使用PHP。

步骤1):使用file()将文件的每一行读入字符串数组,例如。 $ f = file(“data.xml”);

步骤2):使用explode()分割循环中的每一行,例如。 list($ company,$ link)= explode(“,”,$ f [$ i])。将结果存储在一个新的二维数组中,键是公司名称,值是链接字符串的数组。例如,使用$ arr [$ company] [] = $ link;添加“公司密钥”的链接。

步骤3):遍历新数组(例如foreach($ arr as $ company =&gt; $ links){...}),并将数据打印为XML。