Confluence 官方不支持单页面导出 XML,仅可通过空间设置中的“Export space”并勾选“Export in XML format”导出整个空间的内部格式 XML 文件,该文件包含元数据、权限等,非结构化语义 XML。

Confluence 页面导出 XML 的官方路径在哪
Confluence 原生不提供单页面“导出为 XML”的按钮,XML 导出功能仅存在于空间级备份或全站导出场景中,且该 XML 是 Confluence 内部格式(含元数据、权限、历史版本等),不是结构化语义 XML,也不等同于 XHTML 或 Atlassian Document Format(ADF)。
用 Space Export 功能生成 XML 文件的实操步骤
这是唯一受官方支持、能拿到 .xml 后缀文件的方式,但注意:它导出的是整个空间,不是单页。
- 进入目标
Space→ 点击右上角⋯(更多)→ 选择Space settings - 左侧菜单选
Content management→ 点击Export space - 勾选
Export in XML format(默认是 PDF/HTML)→ 点击Export - 等待后台任务完成,下载生成的
space-key-YYYYMMDD-HHMMSS.xml
这个 XML 文件体积大、嵌套深,page 节点在 下,正文内容以 CDATA 包裹的存储格式(如
想导出单页 XML?得绕过 UI,用 REST API + 手动拼装
Confluence Server / Data Center 支持通过 /rest/api/content/{id}?expand=body.storage,version,history 获取页面原始存储格式(XHTML),再自行封装成简易 XML 结构。Cloud 版本因 CORS 和权限限制,通常需配合 atlassian-connect-express 或 OAuth2 后端代理调用。
示例请求(Server/Data Center):
curl -u 'user:api_token' \ 'https://your-domain.com/rest/api/content/123456789?expand=body.storage,version,history'
响应中关键字段:
-
body.storage.value:含 XHTML 字符串(如)Text
-
version.number:当前版本号 -
history.lastUpdated:ISO 时间戳
你可以用 Python 快速包装成最小 XML:
import xml.etree.ElementTree as ET
root = ET.Element("page")
ET.SubElement(root, "id").text = "123456789"
ET.SubElement(root, "title").text = "My Page"
ET.SubElement(root, "content").text = "Hello
"
print(ET.tostring(root, encoding="unicode"))
为什么别依赖 XML 导出做内容迁移或解析
Confluence 的空间级 XML 导出文件:不是标准文档格式,没有公开 DTD/XSD;不向前兼容,7.x 导出的 XML 很可能无法被 8.x 导入;含二进制附件引用(如 ),但附件本身不包含在 XML 中;宏(macro)渲染逻辑丢失,只存原始 Wiki 或 XHTML 标签,不保证还原显示效果。
真正需要结构化导出时,优先考虑:PDF 导出(稳定)、HTML 导出(带样式)、或用 Confluence Cloud 的 ADF API(/rest/api/content/{id}/editor)获取语义化文档树——XML 只适合做冷备份,不适合当交换格式用。










