替换特定的XML属性值

问题描述 投票:-1回答:2

我在互联网上寻找,但我无法找到我的问题的工作答案。我需要替换一个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>
python python-3.x xml lxml elementtree
2个回答
1
投票

我的肮脏的解决方案。

tree = etree.parse('fe3.xml', parser)
tree = etree.tostring(tree).replace(b'size="10.439"', b'size="10.238"')

0
投票

我又来了:)

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>
© www.soinside.com 2019 - 2024. All rights reserved.