从xml python生成文本

时间:2015-03-05 13:45:43

标签: xml python-3.x

使用python3.4,我试图从xml文件中提取所有文本。我用过:

tree = etree.parse(xmlFile)
notags = etree.tostring(tree, encoding='utf8', method='text')

这删除了所有的xml标签,只给我文本。但结果有3个问题:

  1. “almost square”转向\xe2\x80\x9calmost square\xe2\x80\x9d

  2. <title><tag close=" ">1</tag>Introduction</title> 变成1Introduction 虽然我需要1和介绍之间的空格

  3. 引用如:In [<ref labelref="LABEL:C"/>] 变成了In []

  4. 在没有这些问题的情况下,没有标签的文本是否有更好的方法?

    由于

1 个答案:

答案 0 :(得分:0)

  1. 引用标记已更改,因为您传递encoding='utf8'并返回字节字符串。 这里有tostring的帮助说:
  2.   

    您也可以序列化为Unicode字符串,而无需声明       将unicode函数作为编码传递(或在Py3中传递str),       或者名字'unicode'。这会更改一个字节的返回值       字符串到未编码的unicode字符串。

    如果您想要unicode字符串

    ,请使用encoding='unicode'
    1. 我认为在这种情况下,您必须手动迭代树。

    2. 不确定。你有什么期望?