0
A
回答
0
從來沒有聽說過這樣的事情,但編寫這樣一個基於dictionary coder編程的程序可能是一件很有趣的任務。
0
該問題的描述過於籠統。
您能否提供一個具體的例子:源XML文檔和想要的結果?
乾杯,
Dimitre Novatchev
0
不容易。我的第一個想法是XSLT,但很難實現。您必須通過每個節點,然後在具有相同數據的每個節點上執行XPATH選擇。這會找到它們,但最終你會最終處理具有相同數據的所有節點(即,無法跟蹤已經處理的節點數據並忽略它)。你可以用真正的編程語言來完成,但這是我的經驗之外。
0
您可以編寫一個簡單的C#應用程序,使用Linq將所有節點作爲獨立實體進行兩次讀取,然後查找所有相同的值。
2
這是第一次嘗試,用Python編寫,僅使用標準庫。你可以在許多方面改進(修剪引導和結尾空格,計算文本的哈希以減少內存質量要求,更好的顯示元素,他們的行號等):
import xml.etree.ElementTree as ElementTree
import sys
def print_elem(element):
return "<%s>" % element.tag
if len(sys.argv) != 2:
print >> sys.stderr, "Usage: %s filename" % sys.argv[0]
sys.exit(1)
filename = sys.argv[1]
tree = ElementTree.parse(filename)
root = tree.getroot()
chunks = {}
iter = root.findall('.//*')
for element in iter:
if element.text in chunks:
chunks[element.text].append(element)
else:
chunks[element.text] = [element,]
for text in chunks:
if len(chunks[text]) > 1:
print "\"%s\" is a duplicate: found in %s" % \
(text, map(print_elem, chunks[text]))
如果你給它這個XML文件:
<foo>
<bar>Hop</bar><quiz>Gaw</quiz>
<sub>
<und>Hop</und>
</sub>
它會輸出:
"Hop" is a duplicate: found in ['<bar>', '<und>']
0
A very similar question(在這一個問題後問了一年)用一些非常好的工具在同一個文件中區分塊,包括Atomiq。
相關問題
- 1. 在屬性文件中查找重複鍵和值的工具
- 2. 如何在聯接文本文件中查找重複的行
- 3. 在文本文件的兩列之一中查找重複值
- 4. 查找重複的文件
- 5. 在大文本文件中查找重複記錄
- 6. 批量查找和操作顯示部分重複文件
- 7. 我需要一個工具來查找單個文本文件或一組文本文件中的重複文本或類似文本塊
- 8. 在bash腳本中查找文件夾名稱的一部分
- 9. XML - 在XML文件中查找值
- 10. 重複使用工具提示文本
- 11. 從xml文件中查找重複名稱
- 12. 查找大的文本文件不連續重複
- 13. 向後查找Qt5/C++中的文本文件(尾部文件)
- 14. 從python中的部分文件名中查找文件
- 15. 工具檢查mercurial的內部文件
- 16. 在python中複製部分文本文件時的錯誤
- 17. 查找重複的圖像文件
- 18. 查找文本重複 - 易於實現
- 19. 在Java中查詢分隔文本文件的最佳工具是什麼?
- 20. 在ReorderList(Ajax工具包/ ASP.NET)中查找文本的問題
- 21. 在XML列中查找重複值
- 22. 在mysql查詢中查找並顯示部分文本
- 23. 替換XML中的部分內文本
- 24. 通過其內部文本在xml中查找元素
- 25. 在崇高文本中查找重複的JSON密鑰3
- 26. 尋找工具來搜索文件中的文本命令行
- 27. 在Jar中查找文本文件
- 28. JavaScript在文本文件中查找
- 29. 在C#中複製文件時檢查重複的文件名
- 30. Perl文件::查找重複名稱
這很酷,我很欣賞額外的努力! 看起來這隻適用於根級節點,但是,不是嗎? – duma 2009-03-12 15:12:06