我們在比較兩個xml文件時存在嚴重的問題。我們需要根據關鍵值找出兩個xml文件之間的差異。我們需要xml標記和xml標記值的差異。鍵值可以存在於文件中的不同位置。例如,下面是兩個xml文件示例,其中id是學生的鍵。首先存在StudentDetails_one.xml文件ID 111,但是在StudentDetails_two.xml中存在id 222第一。XML文件差異
StudentDetails_one.xml
<Student>
<Id>111</Id>
<Name>AAA</Name>
<City>ABCD</City>
<Dept>CS</Dept>
<Mobile Number>11111</Mobile Number>
</Student>
<Student>
<Id>222</Id>
<Name>BBB</Name>
<City>ABCD</City>
<Dept>IT</Dept>
<Mobile Number>22222</Mobile Number>
</Student>
StudentDetails_two.xml
<Student>
<Id>222</Id>
<Name>CCC</Name>
<City>ABCD</City>
<DEPT>IT</DEPT>
<Mobile Number>22222</Mobile Number>
</Student>
<Student>
<Id>111</Id>
<Name>AAA</Name>
<City>ABCD</City>
<Dept>CS</Dept>
<Mobile Number>11111</Mobile Number>
</Student>
的下面兩點不同可以在上面2個文件被注意到。
- 學生ID 222具有在兩個不同名稱值這2個XML files.In先向其BBB和在第二個文件中它的CCC。
- 學生ID 222的xml標記控制差異爲部門在第一個文件中並且DEPT在第二個文件中。
有什麼工具或技術可以找出上述兩點區別嗎?
注:以上一個僅僅是一個example.We有XML文件與數百tags.So它真的很難找出區別的學號位置是在這兩個文件的不同
對於標籤匹配,您可以將它們小寫;如果他們然後匹配小寫明智的話,你可以用原始形式對照他們。如果他們然後不同它是一個拼寫錯誤的副本。最好使用API讀取XML結構爲對象/字典/數組類型,以便您可以遍歷它們並查看是否存在與TAG或VALUE不同的ID重複項。不應該那麼辛苦。你更喜歡什麼腳本/編程語言? – 2013-03-22 11:35:24
嗨Allendar..nice info..thanks..i一般使用C++語言.. – user2090833 2013-03-22 14:12:16
你可以做一些在C++中的XML解析器的研究(例如:http://stackoverflow.com/questions/170686/best-open-xml -parser換-C)。你主要需要的是將XML從解析器讀出到多維數組中。從這一點開始,你可以通過該數組做循環(+內循環),並檢查是否有衝突的匹配。根據這些衝突,您可以編寫一個合併輸出(再次通過XML解析器),並將其寫入新的XML文件以及發現/更改/合併(執行一些人工驗證)的報告。 – 2013-03-22 14:16:31