我在互联网上寻找,但我无法找到我的问题的工作答案。我需要替换一个XML文件的属性值,如果它是 size="10.439"
to size="10.238"
. 基本上,我需要改变整个XML文件中的那个数字。所以代码是这样的。
import lxml.etree as etree
import re
parser = etree.XMLParser(remove_blank_text=True)
tree = etree.parse('fe3.xml', parser)
re.sub(r'size="10.439"','size="10.238"', tree)
但这行不通,我要怎么做才行?
如果有帮助的话,大小属性是在标签的 text
的XML。像这样。
<pages>
<page>
<textbox>
<text size = "10.439"> hello
</text>
</textbox>
</page>
</pages>
我的肮脏的解决方案。
tree = etree.parse('fe3.xml', parser)
tree = etree.tostring(tree).replace(b'size="10.439"', b'size="10.238"')
我又来了:)
from simplified_scrapy import SimplifiedDoc,req,utils
html = '''
<pages>
<page>
<textbox>
<text size = "10.439"> hello
</text>
</textbox>
</page>
</pages>
'''
doc = SimplifiedDoc(html)
text = doc.select('text')
if text.size=='10.439':
text.setAttr('size','10.238')
print (doc.html)
结果是:
<pages>
<page>
<textbox>
<text size="10.238"> hello
</text>
</textbox>
</page>