使用Python,尝试使用十六进制编码的html转义字符保存xml文件
我正在使用ElementTree。我有一个解析过的xml文档,如下所示:使用Python,尝试使用十六进制编码的html转义字符保存xml文件,python,xml,python-2.7,hex,ascii,Python,Xml,Python 2.7,Hex,Ascii,我正在使用ElementTree。我有一个解析过的xml文档,如下所示: <data> <name> <slash>/</slash> </name> </data> 您可以使用编解码器模块(包含在python中) 这应该返回f 您可以使用编解码器模块(包含在python中) 这应该返回f 使用lxml: x = """<data> <name>
<data>
<name>
<slash>/</slash>
</name>
</data>
您可以使用编解码器模块(包含在python中)
这应该返回f 您可以使用编解码器模块(包含在python中) 这应该返回f 使用lxml:
x = """<data>
<name>
<slash>/</slash>
</name>
</data>"""
import lxml.etree as et
xml_doc = et.fromstring(x)
for node in xml_doc.xpath("//*[contains(text(), '/')]"):
node.text = node.text.replace("/","/")
print(et.tostring(xml_doc))
要写入文件,请使用lxml覆盖这两个部分。:
x = """<data>
<name>
<slash>/</slash>
</name>
</data>"""
import lxml.etree as et
xml_doc = et.fromstring(x)
for node in xml_doc.xpath("//*[contains(text(), '/')]"):
node.text = node.text.replace("/","/")
print(et.tostring(xml_doc))
要写入文件,请同时覆盖这两个部分
import codecs
def returnHex(input):
hexitup = codecs.getencoder('hex')
return ("&#" + hexitup(input)[0]+";")
print(returnHex('/'))
x = """<data>
<name>
<slash>/</slash>
</name>
</data>"""
import lxml.etree as et
xml_doc = et.fromstring(x)
for node in xml_doc.xpath("//*[contains(text(), '/')]"):
node.text = node.text.replace("/","/")
print(et.tostring(xml_doc))
<data>
<name>
<slash>&#x2f;</slash>
</name>
</data>
from xml.etree import ElementTree as et
xml_doc = et.fromstring(x)
for node in xml_doc.iter("*"):
if "/" in node.text:
node.text = node.text.replace("/","/")