XML:将错误/无用的标记转换为有用的标记

时间:2016-01-04 20:12:57

标签: xml mediawiki confluence confluence-rest-api

我正在尝试解决由数千页MediaWiki wikicode导致的非常具体的问题,这些问题被错误地解析为Confluence的XML语法。不幸的是,原来的wikicode已不再可用,因此手头的任务是清理Confluence XML语法。

语法错误

<ac:link>
    <ri:page ri:content-title="File__image.jpg"/>
    <ac:plain-text-link-body><![CDATA[500px]]></ac:plain-text-link-body>
</ac:link>

更正语法

<ac:image>
    <ri:attachment ri:filename="image.jpg"/>
</ac:image>

MediaWiki Converter plugin(UWC)的Universal Wiki Converter生成的语法不正确,它将wikicode [[File:image.jpg | 500px]]解释为链接到该页面的文本“500px” “File:image.jpg”,而不是宽度为image.jpg的嵌入图片“500px”。)

我使用一系列查找/替换操作修复XML语法已经取得了成功,但这是一个非常手动的过程,使用Sublime Text 3中的脚本/插件制作的一组kludges。

作为简要概述,以下是我一直在使用的替换集:

  1. 删除<ac:link>
  2. 删除</ac:link>

  3. <ri:page ri:content-title="替换为<ac:image><ri:attachment ri:filename="

  4. <ac:plain-text-link-body><![CDATA[500px]]></ac:plain-text-link-body>替换为</ac:image>

  5. ri:filename="File__替换为ri:filename="

  6. 使用我的脚本确实“有用”,但由于我已经证明了修复Confluence XML语法的价值,我现在有更多的时间来投资使用更好的方法来制作“好”的解决方案。一个理想的解决方案是用JavaScript编写的(这样我就可以使用Confluence的浏览器内代码编辑器创建一个Greasemonkey脚本来修复标记),或者可以使用Confluence的REST API。

    我有一些脚本编写经验(包括PHP,JavaScript和一点点Python)和有限的编程经验,而且我自己对现有脚本的研究,我还没有找到一个可以很容易地适应这个目的的现有脚本,所以我正在寻找建立脚本以满足这种需求的最佳方法的建议/指导。

    我如何构建一个脚本来将一系列查找/替换操作链接在一起?

0 个答案:

没有答案