2011-06-29 60 views
0

我有一個XML文件,我想合併兩個不同的CONTACT子節點。如何在同一個XML文件中合併兩個不同的子節點

我檢查了這些網站,它顯示瞭如何將兩個不同的xml文件合併到一個文件中。

http://www2.informatik.hu-berlin.de/~obecker/XSLT/#merge

Merge XML documents

在我而言,這是我在XML文件中第一次接觸:

<CONTACT> 
<PDE-Identity>N65539</PDE-Identity> 
<FirstName>Arun_niit</FirstName> 
<LastName>Arun_niit</LastName> 
<Facebook-ID/> 
<EMAILS> 
<EMail> 
<Type>yahoo</Type> 
<Value>[email protected]</Value> 
</EMail> 
</EMAILS> 
</CONTACT> 

這是文件中的第二聯繫人:

<CONTACT> 
<PDE-Identity>N65567</PDE-Identity> 
<FirstName>Arun_niit</FirstName> 
<LastName>Ramanathan</LastName> 
<Facebook-ID/> 
<EMAILS> 
<EMail> 
<Type>gmail</Type> 
<Value>[email protected]</Value> 
</EMail> 
<EMail> 
<Type>yahoo</Type> 
<Value>[email protected]</Value> 
</EMail> 
</EMAILS> 
</CONTACT> 

我知道這兩個聯繫人都屬於同一個人上。我如何將這兩個聯繫人合併到同一個xml文件中。

原始XML文件:

<?xml version="1.0" encoding="UTF-8"?> 
<CONTACTS> 

<CONTACT> 
<PDE-Identity>N65539</PDE-Identity> 
<FirstName>Arun_niit</FirstName> 
<LastName>Arun_niit</LastName> 
<Facebook-ID/> 
<EMAILS> 
<EMail> 
<Type>yahoo</Type> 
<Value>[email protected]</Value> 
</EMail> 
</EMAILS> 
</CONTACT> 

<CONTACT> 
<PDE-Identity>N65567</PDE-Identity> 
<FirstName>Arun_niit</FirstName> 
<LastName>Ramanathan</LastName> 
<Facebook-ID/> 
<EMAILS> 
<EMail> 
<Type>gmail</Type> 
<Value>[email protected]</Value> 
</EMail> 
<EMail> 
<Type>yahoo</Type> 
<Value>[email protected]</Value> 
</EMail> 
</EMAILS> 
</CONTACT> 


<CONTACT> 
<PDE-Identity>N65567</PDE-Identity> 
<FirstName>Rangarajkarthik</FirstName> 
<LastName>karthik Rangaraj</LastName> 
<Facebook-ID/> 
<EMAILS> 
<EMail> 
<Type>gmail</Type> 
<Value>[email protected]</Value> 
</EMail> 
<EMail> 
<Type>yahoo</Type> 
<Value>[email protected]</Value> 
</EMail> 
</EMAILS> 
</CONTACT> 

<CONTACTS> 
+0

歡迎來到SO。爲了回答您的問題,我們需要更多地瞭解您所在的環境。您打算使用XSLT嗎?一個文本編輯器?當你說「合併」時,你打算如何處理衝突的數據項,如姓氏?編寫一個通用的解決方案是不可能的,它只會「知道」如何處理衝突。 –

+0

嗨吉姆加里森,謝謝。我不知道如何繼續這個......但我正在使用XUL開發Firefox擴展。我想知道如何以XUL格式或HTML格式向用戶顯示此信息,並讓我用戶在同一個XML文件中合併兩個不同的聯繫人。例如,考慮我們有複選框兩個選擇兩個不同的聯繫人,我們可以有一個按鈕來合併。這是做正確的方式嗎?如果我感到困惑,請回復我。謝謝。 – user838691

+0

你要做的是一個相對複雜的任務,需要一個用戶界面,以便用戶可以告訴你的擴展如何處理衝突。沒有這樣的接口,擴展將不會有用。大多數(即90%)您的工作將用於設計和實現界面,並且在用戶告訴您在每次衝突中應該做什麼之後合併聯繫人將成爲容易的部分。 –

回答

0

大多數瀏覽器都支持XML解析JavaScript中了。這裏有一個示例代碼片段,您必須修改它以解析您的特定輸入。

if (window.DOMParser) 
    { 
    parser=new DOMParser(); 
    xmlDoc=parser.parseFromString(text,"text/xml"); 
    } 
else // Internet Explorer 
    { 
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async="false"; 
    xmlDoc.loadXML(text); 
    } 

欲瞭解更多的信息,我建議你做一個谷歌搜索javascript xml dom

+0

它可以幫助我繼續下去,謝謝。 – user838691

相關問題