将两个XML标记融合在一起

xmlfuse的Python项目详细描述


XML保险丝

Build StatusPyPI version

给定两个具有相同文本的XML文档,将标记融合在一起以创建输出XML文档。在

安装

pip install xmlfuse

建造和测试:

如果您喜欢从源代码构建,请执行以下步骤:

^{pr2}$

美国石油学会

importlxml.etreeasetfromxmlfuse.fuseimportfusexml1=et.fromstring('<span>Hello, <i>world!</i></span>')xml2=et.fromstring('<span><b>Hello</b>, world!</span>')xml=fuze(xml1,xml2)assertet.tostring(xml)==b'<span><b>Hello</b>, <i>world!</i></span>'

输入文档必须具有完全相同的文本

如果文本不同,则引发错误。空白很重要!在

示例:

xml1=et.fromstring('<span>Hello</span>')xml2=et.fromstring('<span>Good bye</span>')xml=fuze(xml1,xml2)# expect RuntimeError raised

冲突标记

标记冲突。有时不可能合并两个标记,因为标记相交。在这种情况下,人们可以选择:

a.引发异常并让调用者处理问题 b、 通过分割其中一个标记来解决问题

将<$str^/second。主标记从不分段。如果有 主标记和从标记之间的冲突(如果auto_segment标志是True),则fuse()将分段从属标记以使标记一致。在

示例:

xml1=et.fromstring('<span>Hel<i>lo, world!</i></span>')xml2=et.fromstring('<span><b>Hello</b>, world!</span>')xml=fuze(xml1,xml2)assertet.tostring(xml)==b'<span><b>Hel<i>lo</i></b></i>, <i>world!</i></span>'

auto_segment标志设置为False以防止分段。如果检测到冲突,则将引发错误。在

模棱两可

当主标记和从标记包装相同的文本时,会出现嵌套错误-哪个标记应该是内部的?在

我们通过不断尝试将slave标记放在master中来解决这个问题。这种行为是可以改变的 通过将标志prefer_slave_inner设置为false。在

示例:

xml1=et.fromstring('<span><i>Hello</i>, world!</span>')xml2=et.fromstring('<span><b>Hello</b>, world!</span>')xml=fuze(xml1,xml2,prefer_slave_inner=True)assertet.tostring(xml)==b'<span><b><i>Hello</i></b>, world!</span>'xml=fuze(xml1,xml2,prefer_slave_inner=False)assertet.tostring(xml)==b'<span><i><b>Hello</b></i>, world!</span>'

从顶级标记被删除

请注意,slave的顶层标记没有合并。只是掉下来了。如果你想合并到输出中, 设置strip_slave_top_tag=False。在

fuse()签名

fuse(xml1,xml2,*,prefer_slave_inner=True,auto_segment=True,strip_slave_top_tag=True)

其中:

  • xml1是主XML文档(LXML元素对象,请参见http://lxml.de
  • xml2是从XML文档
  • prefer_slave_inner控制模糊分辨率
  • auto_segment允许在标记冲突的情况下进行从属smarkup分段
  • strip_slave_top_tag允许fuse忽略从XML的顶层标记

返回融合的XML文档

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java初学者Swing递归   java将hashmap转换为JSON字符串   cURL和java字符串变量出错   java为什么不将其视为多重继承,而所有类都首先从对象类扩展,然后再扩展其他类   java如何在eclipse中添加插件依赖项   使用java从Ms word表中提取图片   java实现可比较的接口   验证生成的事务时发生java错误。木栓   java@OneToMany和不同的主键   java Jaxb2在相对路径上找不到xsd架构   java客户端C++服务器数据发送/接收问题   javajaxws-webservice。改变节点结构   java如何将带有特殊字符的字符串转换为另一个转义字符串   netbeans如何链接JGraph传感器和Java邮件?   java如何在单个tomcat中检查每个web应用程序的内存大小?   客户端图形QLJava类生成器