2014-09-25 92 views
0

我很难过。我有一个CSV的一组数据,看起来是这样的:如何使用结构化数据将CSV导出为XML

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编辑器做到这一点?有人可以帮助我指出正确的方向如何获得像这样的数据结构?基本上需要按公司名称进行分组,然后为每个包含链接的公司分配一个数据子集。

任何帮助非常感谢!

+0

您是否知道任何脚本语言,还是仅限于Excel/VBA?还有为什么你有标签JSON? – xlm 2014-09-25 02:07:46

+0

json是一个错字。我知道PHP,但是excel/VBA以外的更好的脚本语言 – 2014-09-25 02:12:45

回答

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 => $ links){...}),并将数据打印为XML。