我可以直接将 docutils 节点作为 XML 文件加载吗?

问题描述 投票:0回答:1

docutils 文档 基于节点层次结构。他们自始至终都说节点是 XML(或者至少是类 XML),并且有多种方法可以将文档和文档片段转储为 XML 格式。他们甚至生成一个描述节点 XML 文档格式的DTD

我想使用非 Python 工具生成 docutils 节点,将它们序列化为机器可读的格式,然后使用 docutils 加载它们(作为 Sphinx 插件的一部分)。

我试图找到一种方法来加载完整的 XML 文档或 XML 片段(以 DTD 指定的格式)并获取节点树,但我找不到任何东西。有什么方法可以将 docutils XML 格式读回到节点中,即与

Node.asdom()
相反吗?

更一般地说,是否有任何机器可读的格式可以使用描述节点树的 docutils 加载?是基于 XML 还是其他格式?

python xml python-sphinx docutils
1个回答
0
投票

Docutils 存储库版本 0.22b.dev 引入了“Docutils XML”解析器,可以将 XML 序列化解析回文档树。

所以你可以尝试一下,例如,

rst2xml my_document.rst > my_document.xml # edit my_document.xml docutils --parser=xml --writer=html5 my_document.xml > my_document.html
但它也应该适用于通过其他方式(或手工制作)生成的 XML 输入,只要它有效。

您还可以使用

parser

 
“include”指令选项 在 rST 源中包含完整或部分文档

.. include:: my_document.xml :parser: xml
警告:作为 Docutils 模块,解析器可能/将会在对 Sphinx 添加的文档树元素的扩展上失败。

© www.soinside.com 2019 - 2024. All rights reserved.