Python Lxml:文本中的符号和

Python Lxml:文本中的符号和,python,xml,parsing,lxml,ampersand,Python,Xml,Parsing,Lxml,Ampersand,我在使用lxml时遇到问题 我正在使用lxml解析一个xml文件,然后再次将它写回一个新的xml文件 输入文件: “示例文本” “示例文本” &载脂蛋白;示例文本' 脚本: from lxml import etree parser = etree.XMLParser(remove_comments=False,strip_cdata=False,resolve_entities=False) tree = etree.parse("input.xml")

我在使用lxml时遇到问题

我正在使用lxml解析一个xml文件,然后再次将它写回一个新的xml文件

输入文件:


“示例文本”
“示例文本”
&载脂蛋白;示例文本'
脚本:

    from lxml import etree
    parser = etree.XMLParser(remove_comments=False,strip_cdata=False,resolve_entities=False)
    tree = etree.parse("input.xml")
    tree.write("out.xml")
输出:

    from lxml import etree
    parser = etree.XMLParser(remove_comments=False,strip_cdata=False,resolve_entities=False)
    tree = etree.parse("input.xml")
    tree.write("out.xml")

“示例文本”
“示例文本”
“示例文本”
我想保留
。我甚至尝试使用

f = open('output.xml', 'w')
f.write(etree.tostring(tree1.getroot(),encoding="UTF-8",xml_declaration=False))
f.close()
但他们都没有解决这个问题

然后我尝试手动将“替换为

root = tree.getroot()
tag_elements = root.iter()
for tag in tag_elements:
        tag_text = tag.text
        if tag_text is not None:
               tag_text1 = tag_text.replace("\"",""")
               tag.text = tag_text1
但这给出了以下输出


&“示例文本”;
&“示例文本”;
'示例文本'

它将&替换为
&;
。我在这里感到困惑。请帮助我解决这个问题。

&;
是字符的xml编码
是字符的xml编码
。字符
不需要编码,所以lxml不会对它们进行编码

你有没有试过再次解码这份文件?它应该像你期望的那样工作。如果需要再次对文档中的字符串进行编码(将
&
转换为
&;
等),请在生成新的xml文档之前使用lxml树中的单个字符串进行编码