XML作为纯对象模块
xmlplain的Python项目详细描述
xmlplan
XML作为纯对象实用程序模块
Synopsys
此模块是一组实用函数,用于分析自包含的 XML输入到纯列表/dict/string类型并发送到/读取 从XML或YAML格式。
其动机是将xml转储到yaml,手动编辑 将文件作为yaml,并返回xml输出。
尽管此模块可以更简单地用于转储兼容的plain 将/dict/string对象列为xml或yaml进行文本存储。
当读到对象并写回xml时,xml文件内容具有 所有的文件结构和内容都保存在W.R.T.。 元素开始/结束和文本内容。 通过xml注释、文档类型规范、外部 如果输入中存在实体定义,则将放弃实体定义。外部系统 不支持实体(即包含外部文件) 并生成一个输入错误。
输入xml只是在语法上验证,而不是验证 作为底层后端的任何DTD或模式规范 是核心xml.sax模块。
文档上唯一的可选破坏性转换
内容是读取时的条带空间
选项(分别为漂亮
选项
在书写时)会影响非叶文本内容(剥离
前导和尾随空格)。
XML命名空间被忽略,因为没有实际的架构验证, 因此,元素、属性名和名称空间uri属性 按原样传递和保留。
注意,有一些模块几乎相同 功能,但没有一个提供所有功能:
- 简单的普通对象(dict、list、strings)转储到XML或从XML重新加载
- 保存半结构化XML文档(标记重复, 混合文本和标记)输入时
- 通过yaml桥管理可编辑表单
用法
为了将xml文件转换为yaml表示,例如
测试/example-1.xml文件:
<example><doc>This is an example for xmlobj documentation. </doc><contentversion="beta"><kind>document</kind><class>example</class><structured/><elements><item>Elt 1</item><doc>Elt 2</doc><item>Elt 3</item><doc>Elt 4</doc></elements></content></example>
执行以下python代码:
importxmlplain# Read to plain objectwithopen("tests/example-1.xml")asinf:root=xmlplain.xml_to_obj(inf,strip_space=True,fold_dict=True)# Output plain YAMLwithopen("example-1.yml","w")asoutf:xmlplain.obj_to_yaml(root,outf)
这将在 然后可以读取发出的yaml表示并生成
再次显示一个xml输出,其中: 这将输出回以下XML(可能有
压痕和/或短空元素差异
原件: 有关详细用法,请阅读api文档,其中包含: 或访问在线文档:https://guillon.github.io/xmlplan" rel="nofollow">https://guillon.github.io/xmlplan 该模块与python 2.6/2.7和python 3.x兼容。
对于本地安装(安装到 这将在您的用户环境中安装最新版本及其依赖项。 可选地在系统级安装: 从以下版本下载此模块存档文件:https://github.com/guillon/xmlplan/releases" rel="nofollow">https://github.com/guillon/xmlplan/releases 或者克隆源git存储库,地址是:https://github.com/guillon/xmlplan" rel="nofollow">https://github.com/guillon/xmlplan 使用以下命令安装第一个模块依赖项: 要么将 对于用户本地安装(安装到 此模块作为带有测试的源树的一部分交付,顺序如下
要运行测试,请为insta执行NCE: 安装了python coverage后,可以使用以下命令检查更改的覆盖率: 当检查目标通过和新添加的代码被覆盖时,
请向https://github.com/guillon/xmlplan" rel="nofollow">https://github.com/guillon/xmlplan提交请求 文档是用sphinx生成的
在线文档的宿主位置是:https://guillon.github.io/xmlplan" rel="nofollow">https://guillon.github.io/xmlplan 发布过程依赖于virtualenv工具python2和python3
正在发布主机上安装。 发布版本对python2和python3进行构建、测试和覆盖率检查
然后为pypi生成文档和可上传的存档。 在取消发布之前,请确保更新 然后按以下步骤准备释放: 当所有这些都在本地传递时,提交所有并推送到github
一旦全部通过,并且重新执行了 此时,包的版本应该可以在https://pypi.org/project/xmlplan" rel="nofollow">https://pypi.org/project/xmlplan
文档更新于https://guillon.github.io/xmlplan" rel="nofollow">https://guillon.github.io/xmlplan 应该使用以下命令检查pypi上的正确安装: 它将重新启动版本检查,这次从pypi下载而不是使用
本地来源。 完成所有操作后,应使用以下命令手动更新github: 这是免费的无负担软件,已发布到公共域。example-1.yml中输出yaml表示
example:doc:'Thisisanexampleforxmlobjdocumentation.'content:'@version':betakind:documentclass:examplestructured:''elements:-item:Elt 1-doc:Elt 2-item:Elt 3-doc:Elt 4
importxmlplain# Read the YAML filewithopen("example-1.yml")asinf:root=xmlplain.obj_from_yaml(inf)# Output back XMLwithopen("example-1.new.xml","w")asoutf:xmlplain.xml_from_obj(root,outf,pretty=True)
<?xml version="1.0" encoding="UTF-8"?><example><doc>This is an example for xmlobj documentation. </doc><contentversion="beta"><kind>document</kind><class>example</class><structured></structured><elements><item>Elt 1</item><doc>Elt 2</doc><item>Elt 3</item><doc>Elt 4</doc></elements></content></example>
pydoc xmlplain
安装
$home/.local
)请执行:pip install --user xmlplain
sudo pip install xlmplain
来源
从源安装
pip install --user setuptools PyYAML ordereddict
xmlplan.py
文件复制到某个地方,要么安装它
使用setup.py
$home/.local
)请执行:<example><doc>This is an example for xmlobj documentation. </doc><contentversion="beta"><kind>document</kind><class>example</class><structured/><elements><item>Elt 1</item><doc>Elt 2</doc><item>Elt 3</item><doc>Elt 4</doc></elements></content></example>
0
开发
<example><doc>This is an example for xmlobj documentation. </doc><contentversion="beta"><kind>document</kind><class>example</class><structured/><elements><item>Elt 1</item><doc>Elt 2</doc><item>Elt 3</item><doc>Elt 4</doc></elements></content></example>
1
<example><doc>This is an example for xmlobj documentation. </doc><contentversion="beta"><kind>document</kind><class>example</class><structured/><elements><item>Elt 1</item><doc>Elt 2</doc><item>Elt 3</item><doc>Elt 4</doc></elements></content></example>
2
文档
<example><doc>This is an example for xmlobj documentation. </doc><contentversion="beta"><kind>document</kind><class>example</class><structured/><elements><item>Elt 1</item><doc>Elt 2</doc><item>Elt 3</item><doc>Elt 4</doc></elements></content></example>
3
释放
\u版本字符串
在
xmlplan.py
中并提交它(不检查版本
在发布目标中)。<example><doc>This is an example for xmlobj documentation. </doc><contentversion="beta"><kind>document</kind><class>example</class><structured/><elements><item>Elt 1</item><doc>Elt 2</doc><item>Elt 3</item><doc>Elt 4</doc></elements></content></example>
4
下一个/master
分支以便运行travis检查。
例如,在继续之前验证travis的状态
从travis命令行使用:<example><doc>This is an example for xmlobj documentation. </doc><contentversion="beta"><kind>document</kind><class>example</class><structured/><elements><item>Elt 1</item><doc>Elt 2</doc><item>Elt 3</item><doc>Elt 4</doc></elements></content></example>
5
make-j16 release
目标,
将文档上载到github,并使用以下命令将包上载到pypi:<example><doc>This is an example for xmlobj documentation. </doc><contentversion="beta"><kind>document</kind><class>example</class><structured/><elements><item>Elt 1</item><doc>Elt 2</doc><item>Elt 3</item><doc>Elt 4</doc></elements></content></example>
6
<example><doc>This is an example for xmlobj documentation. </doc><contentversion="beta"><kind>document</kind><class>example</class><structured/><elements><item>Elt 1</item><doc>Elt 2</doc><item>Elt 3</item><doc>Elt 4</doc></elements></content></example>
7
xmlplan-x.y.x.tar.gz
在刚刚上传的pypi文件上:https://pypi.org/project/xmlplan/files
许可证
推荐PyPI第三方库