我正在使用 MS Access 数据库和 Adobe InDesign 自动创建目录。我想将图像的文件路径保存在数据库中,并在从 MS Access 导出时将它们变成 XML 中有意义的标签。
截至目前,Access 仅为每一列创建一个 XML 标签,如下所示:
<IMG>href="file:///folder/image.jpg</IMG>
但是,为了将这些图像插入到我的最终文档中,我需要以下内容:
<IMG href="file:///folder/image.jpg">
到目前为止,我正在手动对生成的 XML 文件执行“查找+替换”来修复这些标签。但是,我希望能够以某种方式自动化此工作流程。是否有合适的方法可以在 MS Access 中实现此结果,还是必须在 XML 文件本身中处理?
答案1
好吧,我收到了“Tumbleweed”徽章,所以我想我可以发布我的解决方法,以便其他可能试图解决这个问题的人能够从中受益。
我无法在 MS Access 中获得所需的结果,但可以借助以下工具自动执行查找-删除过程:Sublime Text 2(尽管 Sublime Text 3 也应该能同样好用)。
安装 Sublime Text 2 后,我添加了注册表替换插入以便创建自定义命令来查找和替换 MS Access 导出的 XML 文件中的文本。有关安装注册表替换,您可以咨询这篇博文。
首先,我们必须从 MS Access 数据库的 IMG 列中删除href=
,因为 RegReplace 命令会自动添加它们。在 Access 中的一行中,图像路径应显示如下:
"file:///folder/image.jpg"
为了从
<IMG>"file:///folder/image.jpg"</IMG>
在从 Access 导出的 XML 中
<IMG href="file:///folder/image.jpg">
我们需要编写一个查找替换命令来查找字符<IMG>
和,并分别</IMG>
用 和 替换它们。<IMG href=
/>
为此,必须输入并保存以下内容Preferences > Package Settings > Reg Replace > Settings - Default
//Reformat IMG tags
"IMG_reg_replace": {
"find": "<IMG>",
"replace": "<IMG href=",
"find": "</IMG>",
"replace": "/>"
}
然后,在Preferences > Package Settings > Reg Replace > Commands - Default输入以下内容然后保存:
//Reformat IMG Tags
{
"caption": "Reg Replace: Reformat IMG Tags",
"command": "reg_replace",
"args": {"replacements": ["IMG_reg_replace"]}
},
现在,该命令已在 RegEdit 插件的默认值中定义和引用,我们可以在从 MS Access 导出的 XML 文件上使用它。在 Sublime Text 中打开 XML 文件,然后按Ctrl+Shift+P打开命令面板并输入 IMG。命令将出现,单击后,XML 文件的所有实例将<IMG>
替换为有意义的文件路径引用,可用于在 Adobe InDesign 中将图像加载为锚定对象。