我调用以下命令并获得以下错误:
>>>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
发布于 2011-06-30 18:11:16
lxml.etree.tostring医生说:
独占参数和with_comments参数仅用于C14N输出,它们分别请求独占和未注释的C14N序列化。
该参数仅在使用method='c14n'时才有效。您可以省略它,据我所知,它将不包括评论。即使是这样,接收端的xml解析器也应该忽略它们,所以除非存在带宽问题或您有特定的问题,否则我不会担心它。
发布于 2011-09-22 10:44:48
您可以在解析时删除注释:
parser = etree.XMLParser(remove_comments=True)
tree = etree.parse(xmlfile, parser=parser)或者在使用objectify时(我花了很长时间才发现这一点):
parser = objectify.makeparser(remove_comments=True)
tree = objectify.parse(xmlfile, parser=parser)https://stackoverflow.com/questions/6539035
复制相似问题