讲师中心 微信公众号
AI工具推荐 视频效率加速

Confluence REST API如何上传XML并创建页面

冬萱姑娘_6646

冬萱姑娘_6646

发布时间:2026-02-22 10:01:10

|

346人浏览过

|

来源于php中文网

原创

Confluence REST API 不支持直接上传 XML 创建页面,需先解析 XML 提取 title 和 body.storage.value,再以 JSON 格式调用 POST /rest/api/content;宏、附件、子页面需单独处理。

confluence rest api如何上传xml并创建页面

Confluence REST API 不支持直接上传 XML 创建页面

Confluence 的官方 REST API 没有提供「上传任意 XML 文件并自动解析为页面」的端点。所谓“XML 页面导出格式”(如通过 /exportpage.action 生成的 XHTML-like XML)是 Confluence 内部导出/导入机制使用的私有格式,不能直接 POST 给 REST API。试图用 POST /rest/api/content 提交这种 XML 会触发 400 或 500 错误,常见报错如:"Invalid value for body: expected map, got string" 或 "Unrecognized field 'version'"(因 XML 结构与 JSON Schema 完全不匹配)。

正确做法:解析 XML 内容,提取 title + body,再调用标准创建接口

如果你手头有一个 Confluence 导出的 .xml 文件(例如从旧空间导出的单页 XML),需先人工或脚本解析它,从中提取两个关键字段:title 和 body.view.value(即 XHTML 格式的正文内容)。然后按标准 JSON 格式构造请求体。

  • Confluence 导出 XML 中的页面标题通常在 <title>My Page</title> 或 <property key="title">My Page</property> 节点下
  • 正文内容一般包裹在 <content><body><h1>...</h1></body></content> 或类似结构中,注意剔除 <ac:*> 宏标签(它们在 REST API 中不被识别,需转成等效 HTML 或移除)
  • 必须将提取出的 XHTML 片段包裹进标准的 body.storage.value 字段,并声明 body.storage.representation = "storage"
  • 认证必须使用有效 API Token(Basic Auth 或 Bearer Token),且用户需有目标空间的编辑权限
curl -X POST \
  'https://your-domain.atlassian.net/wiki/rest/api/content' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "page",
    "title": "My Imported Page",
    "space": {
      "key": "DEVS"
    },
    "body": {
      "storage": {
        "value": "<p>This is <em>imported</em> content.</p>",
        "representation": "storage"
      }
    },
    "ancestors": [
      {
        "id": 123456789
      }
    ]
  }'

注意宏(macro)、附件、子页面无法通过 XML 解析自动还原

Confluence 导出 XML 中的 <ac:structured-macro ac:name="toc">、<ri:attachment ri:filename="report.pdf"> 等节点,在 REST API 创建页面时不会被识别或处理。这些元素必须手动转换:

Wordpress REST API
Wordpress REST API

OpenClaw技能,提供WordPress REST API命令行工具,支持通过原生HTTP处理文章、页面、分类、标签、用户及自定义请求。

下载
  • <ac:structured-macro> 需替换为对应 HTML(如 toc 宏 → <ac:structured-macro ac:name="toc"> 本身不可用,只能删掉或改用 <h2> 手动目录)
  • 附件需单独调用 POST /rest/api/content/{id}/child/attachment 接口上传,且必须在页面创建成功后获取其 id 才能关联
  • 子页面关系(<child-page>)不会被自动创建;需递归解析 XML 树,按父子顺序依次创建页面,并在每页的 ancestors 中填入上层页面 ID
  • 导出 XML 中的时间戳、作者信息(<creator>)在 REST API 创建时会被忽略,实际创建人始终是 API 调用者

推荐替代方案:用 Confluence CLI 或 Python + xml.etree.ElementTree 处理

纯手工提取 XML 内容效率低且易错。更可靠的方式是写轻量脚本解析 XML 并生成标准 JSON 请求体。Python 是常用选择,核心逻辑是:

  • 用 xml.etree.ElementTree 加载 XML,定位 title 和 body 节点
  • 对 body 内容做最小清洗:移除所有 ac: 和 ri: 命名空间前缀的标签(保留内部文本或合理 HTML 替换)
  • 确保输出的 XHTML 片段是良构的(闭合标签、无嵌套错误),否则 Confluence 存储解析会失败
  • 用 requests.post() 发送 JSON,检查响应中的 id 和 status 字段确认成功

复杂页面含大量宏或自定义样式时,解析成本高,此时应优先考虑 Confluence 自带的「空间导入」功能(.zip 导出包),而非强行走 REST API。

热门AI工具

更多
蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2075

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

3082

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1036

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

3499

2025.09.10

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

5999

2023.08.02

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4384

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

5677

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2402

2024.11.28

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

40

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn