第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

通過python中的XML.osm更改ET.iterpase()時(shí)的attrib值

通過python中的XML.osm更改ET.iterpase()時(shí)的attrib值

繁華開滿天機(jī) 2021-03-28 16:14:18
我正在嘗試ET.interparse()在for循環(huán)中編寫XML元素的新屬性值。有關(guān)如何執(zhí)行此操作的建議?我想避免打開整個(gè)XML文件,因?yàn)樗艽?,這就是為什么我一次只在start事件中打開一個(gè)元素的原因。這是我的代碼:import xml.etree.cElementTree as ETdef main_function:    osmfile = 'sample.osm'    osm_file = open(osmfile, 'r+')    for event, elem in ET.interparse(osm_file, events=('start',)):        if elem.tag == 'node':            for tag in elem.iter('tag'):                if is_addr_street_tag(tag):  # Function returns boolean                    cleaned_street_name = cleaning_street(tag.attrib['v'])  # Function returns cleaned street name                    ##===================================================##                    ## Write cleaned_street_name to XML tag attrib value ##                    ##===================================================##        osm_file.close()
查看完整描述

1 回答

?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

BLUF:顯然,如果不打開整個(gè)XML文件然后再重寫整個(gè)XML文件,就不可能做到這一點(diǎn)。

1)您不能將屬性寫回到元素(盡管實(shí)際上可以,但是會(huì)很困難,費(fèi)時(shí)且不雅致)

2)“從物理上講,如果不重寫整個(gè)文件,就不可能用較短或較長的文本替換文件中的文本。(唯一的例外是“長度完全相同的文本”和“數(shù)據(jù)在最后”。 )”

這是來自u(píng)sr2564301的評(píng)論,涉及與您有關(guān)的一個(gè)問題,該問題涉及在不打開整個(gè)XML文檔的情況下更改元素的屬性值。

那可能行不通。XML處理不會(huì)意識(shí)到數(shù)據(jù)來自文件,因此無法在文件中完全相同的位置“回寫”更改后的值。即使可以:在沒有重寫整個(gè)文件的情況下,用較短或較長的文本替換文件中的文本在物理上也是不可能的。(唯一的例外是“長度完全相同的文本”和“數(shù)據(jù)在最后”。)– usr2564301


查看完整回答
反對 回復(fù) 2021-04-09
  • 1 回答
  • 0 關(guān)注
  • 218 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)