Python Lxml:文本中的符号和
我在使用lxml时遇到问题 我正在使用lxml解析一个xml文件,然后再次将它写回一个新的xml文件 输入文件: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")
“示例文本”
“示例文本”
&载脂蛋白;示例文本'
脚本:
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树中的单个字符串进行编码