Joplin仅支持导入标准Evernote导出的.enex文件,不支持任意XML;需确保文件后缀为.enex且含根节点,通过桌面端“文件→导入→Evernote(ENEX)”完成导入。

Joplin 原生不支持直接导入 XML 格式的笔记。你看到的 .xml 文件,大概率是其他笔记软件(如 Evernote)导出的 ENEX(Evernote Export)格式——它本质是 XML,但有特定结构和命名空间。Joplin 能识别并导入的是 .enex 文件,不是任意 XML。
为什么直接拖入 .xml 文件会失败
Joplin 的导入逻辑只对文件扩展名和内容头做双重校验:.enex 是硬性要求;即使把 Evernote 导出的 XML 重命名为 .xml,Joplin 也会跳过或报错 Unsupported file type。它不会尝试解析任意 XML 的笔记结构。
- 常见错误现象:
File not supported或导入后无任何笔记出现 - 真正起作用的是文件后缀 + 内容是否符合 ENEX 规范(含
等) - 如果你手头是自定义 XML(比如从 Obsidian、OneNote 或脚本生成的),Joplin 完全无法识别,必须先转换为 ENEX 或 Joplin 支持的格式(如
.md、.jex)
正确导入 Evernote XML(即 .enex)的步骤
确保你拿到的是标准 Evernote 导出文件:后缀为 .enex,且用文本编辑器打开能看到 根节点。Joplin 桌面端(v2.12+)已内置 ENEX 解析器,无需插件。
- 打开 Joplin 桌面客户端(Web Clipper 或移动端不支持导入)
- 菜单栏点击
文件 → 导入,选择Evernote (ENEX) 文件 (*.enex) - 选中你的
.enex文件,确认导入 —— 笔记、标签、附件(如图片)通常能保留 - 注意:加密笔记、部分嵌入对象(如 PDF 注释)、笔记历史版本会被忽略
非 Evernote XML 怎么办?必须转格式
如果 XML 来自其他系统(例如自研工具、Notion 导出、或带自定义 schema 的备份),Joplin 插件生态里没有通用 XML 解析器。可行路径只有两条:
- 写一个转换脚本:用 Python 或 Node.js 解析你的 XML,按 Joplin 的
.md+ 资源文件夹结构输出(推荐,可控性强) - 利用社区转换工具:
evernote2joplin(仅限 ENEX)、notion-export(配合后续处理)、或joplin-cli的import命令批量导入 Markdown - 避免踩坑:不要试图用「Joplin 插件市场」里名字含 “XML” 的插件(如
xml-importer)——它们多数未维护、不兼容新版 API,或仅处理极简 RSS/OPML 类 XML,无法还原笔记元数据
#!/usr/bin/env python3 # 示例:将简单 XML 笔记转为 Joplin 可导入的 Markdown 目录 import xml.etree.ElementTree as ET import ostree = ET.parse('notes.xml') root = tree.getroot()
output_dir = 'joplin_import' os.makedirs(output_dir, exist_ok=True)
for note in root.findall('note'): title = note.find('title').text or 'Untitled' content = note.find('content').text or '' md_path = os.path.join(output_dir, f"{title[:50].replace('/', '-')}.md") with open(md_path, 'w', encoding='utf-8') as f: f.write(f"# {title}\n\n{content}")
真正卡住人的地方往往不是“怎么点导入”,而是没意识到 Joplin 对 XML 的支持是有严格前提的:它只认 ENEX,且只在桌面端生效。任何绕过这个前提的尝试,最后都会变成手动改后缀、查日志、或写转换脚本。










