首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python: lxml.etree.tostring(with_comments=False)

Python: lxml.etree.tostring(with_comments=False)
EN

Stack Overflow用户
提问于 2011-06-30 17:58:41
回答 2查看 2.7K关注 0票数 5

我调用以下命令并获得以下错误:

代码语言:javascript
复制
>>>lxml.etree.tostring([tree].getroot(), with_comments=False)
ValueError: Can only discard comments in C14N serialisation

我不知道C14N是什么,但我希望能解释一下如何实现它并使用with_comments=False运行前面的命令。(是的,我知道我可以用regex删除评论。请不要提供正则表达式作为解决方案。)

背景:我想通过连接传输xml。我正在使用lxml Python库。我正在运行Python2.7.1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-30 18:11:16

lxml.etree.tostring医生说:

独占参数和with_comments参数仅用于C14N输出,它们分别请求独占和未注释的C14N序列化。

该参数仅在使用method='c14n'时才有效。您可以省略它,据我所知,它将不包括评论。即使是这样,接收端的xml解析器也应该忽略它们,所以除非存在带宽问题或您有特定的问题,否则我不会担心它。

票数 3
EN

Stack Overflow用户

发布于 2011-09-22 10:44:48

您可以在解析时删除注释:

代码语言:javascript
复制
parser = etree.XMLParser(remove_comments=True)
tree = etree.parse(xmlfile, parser=parser)

或者在使用objectify时(我花了很长时间才发现这一点):

代码语言:javascript
复制
parser = objectify.makeparser(remove_comments=True)
tree = objectify.parse(xmlfile, parser=parser)
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6539035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档