在我目前的項目中,我們有一個最初以書籍形式發佈的大型內容存儲庫。大部分內容都以英文和許多外語發佈,主要使用Quark Express和後來的InDesign。此內容已導出到自定義XML結構以供存儲和將來使用。問題在於,英文XML隨着時間的推移而被導出,然後在結構和元數據中得到增強,這些編輯器使得外語XML的結構與英文版本不同。例如:比較XML文檔的更好方法?
英語XML:
<chapter meta="meta data added">
<section meta="some meta about the section">
<paragraph>some english paragraph</paragraph>
<list>
<li>some english list item</li>
</list>
</section>
</chapter>
外國XML:
<chapter>
<section>
<paragraph>some original foreign language paragraph</paragraph>
</section>
</chapter>
正如你可以看到有有時缺失的元素以及缺少的屬性。現在的問題是我們想要將外語結構與英語進行比較,添加缺失的元數據屬性和元素,然後報告XML的非翻譯部分。
當前完成此操作的過程涉及將元素數據剝離並將其放入Web應用程序中。從那裏我允許用戶進入並匹配一個外語段落與它的英文對象(使用Jquery允許他們只需點擊該項目然後匹配)並將這些數據保存爲屬性(通過唯一ID)。那時我知道兩種語言文檔之間的哪些元素匹配,然後我可以將外語內容流入英語結構化的XML中。這使我可以在英文結構化XML中使用外語內容(由uniqueID標記),我可以查詢沒有唯一ID的元素,以便我知道哪些項目需要翻譯。
此過程正常工作,但它非常手動,需要有人進入並點擊段落。隨着成千上萬的內容頁面經過,我正在尋找進一步自動化過程的方法。是否有更好的方法來比較XML文檔的結構,以便通過較少的手動干預來完成上述目標?
當前進程使用C#,ASP.Net,Linq到XML和Jquery等等。但語言和工具無關緊要!我只想找到一個更自動化的解決方案。如果它使用數據庫,沒問題。如果我們需要切換平臺,我不介意。這是一個實施問題,而不是語言問題。謝謝!
這聽起來很有趣。你將什麼樣的外部數據傳遞給變換?我不確定我是否遵循你的迴應。 – 2010-03-09 23:18:09
@TimC:如果你願意,你可以傳遞許多不同的東西。我只提到它,因爲你說當前的進程使用「C#,ASP.Net,Linq到XML和JQuery等等」。我想你可能會使用它們,因爲在處理XML之前需要額外的數據。例如,如果在運行轉換之前需要一個或多個查找表,則可以將查找表作爲可在轉換期間引用的XML文檔傳遞。 – 2010-03-10 00:19:17