繁体   English   中英

比较XML文档的更好方法?

[英]A better way to compare XML docs?

在我当前的项目中,我们有一个庞大的内容存储库,最初以书本形式发布。 这些内容大部分以英文和多种外文发布,主要使用Quark Express和后来的InDesign。 此内容已导出到自定义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 to XML和Jquery等。 但是语言和工具无关紧要! 我只想找到一个更自动化的解决方案。 如果使用数据库,则没有问题。 如果我们需要切换平台,我不在乎。 这是实现问题,而不是语言问题。 谢谢!

过去,我曾使用XSLT将两段XML转换为一种通用格式,然后再与文本diff工具( Beyond Compare进行比较

即使您需要外部数据进行转换,这也可以为您工作-您可以使用.NET XslCompiledTransform类将外部数据传递到XSL Transform,在该类中可以将其作为转换参数进行访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM