老问题,但我会为其他人回答。
A1) 它是纯 XML,因此您应该能够像任何其他文件一样将其流式传输。一旦你得到它,你需要使用 jquery来解析它。然后你可以遍历树并找到你正在寻找的节点。如果每个故事文件中只有一个节点,那么您可以使用正则表达式自己解析它。但听起来您不希望所有这些都在客户端上,只需要某些字段中的数据 - 所以只需让 Java 解析数据并将其发送到客户端应用程序即可。
A2)您可以使用 JavaScript 更新 XML,但您必须将其发送回中间层才能将其保存回 IDML 文件,所以我只需将数据发送到服务器并让服务器处理它。Java会很好。
A3)好吧,在不确切知道您要完成什么的情况下,我建议您在服务器端做所有可以做的事情。您提到需要为 IDML 文件提供“HTML5 编辑器”。这本身就是一个从头开始的巨大要求,尽管这是可能的。我建议您查看可以通过网页维护 IDML 文件的几种产品之一(使用 Flash/Flex 客户端)
您可以使用在线维护/查看 IDML 的一些(非常昂贵的)第三方产品示例,可以是Adobe InDesign Server SDK或NXPublisher。
我的项目是根据用户输入网页的数据基于 IDML 模板创建 IDML 文件。我是这样处理的:
- 用户输入表单数据
- 发送到服务器的数据
- 服务器将适当的 IDML 模板文件解压缩到一个新的临时文件夹中
- 服务器打开提取的故事文件并搜索和替换预定义的关键字(如 <content> 标记内的 {{first_name}}),然后用用户提供的内容替换该文本。
- 在每个字段上重复
- 将临时文件夹文件压缩到新的 IDML 文件中
- 一天一次,有人会在 Mac 上加载 InDesign 并运行我编写的一个小自动化脚本,该脚本将遍历所有等待的 IDML 文件并从中创建可打印的 PDF 文件。
我很想知道您的解决方案是什么。但是,如果有人知道在线查看/编辑 IDML 的廉价解决方案(尤其是使用 HTML5 客户端),我肯定想听听。;)