2014-09-25 51 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。