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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過 python 替換 XML 節(jié)點

如何通過 python 替換 XML 節(jié)點

森欄 2023-05-09 10:06:35
我是 python 的新手,我有一個 - 也許 - 愚蠢的 XML 文件問題(是的,我試圖用谷歌搜索解決方案但沒有結(jié)果)。我必須編寫一個程序來替換/切換兩件事,所以首先,這是 XML 數(shù)據(jù),它看起來像這樣:<data='qwerty'>    <name_it>some_name</name_it></data><next_data='next_qwerty'>    <name_it>another_name</name_it></next_data><next_next_data>...</next_next_data><next_xyz_data>...etc.我如何在 python 中更改some_name為data=''?所以它應(yīng)該是這樣的:<data='some_name'>                            #changed from 'qwerty' to some_name    <name_it>some_name</name_it></data><next_data='another_name'>                    #changed from 'next_qwerty' to another_name    <name_it>another_name</name_it></next_data>如果這是一個愚蠢的問題,對此感到抱歉,但我真的用谷歌搜索了它,但我找不到解決方案。更新:這是我寫的幾行 python 代碼:from xml_file import datanew=""f = io.StringIO(data)  # data loadingfor r in f:     row = r.rstrip()     if 'name_it' in row:         change = row[row.index('name_it')] # maybe kind of len() or something    if "<data>" in row and change:         idx = row.index("<data>") + 6        new += row[:idx] + change + "name_it=\n"        change = ""      else:        new += row + "\n" # new line這是真正的 XML 數(shù)據(jù):<?xml version="1.0" encoding="UTF-8"?><testsuite name="Setup">    <testcase classname="Configuration" name="xxx">        <data>abc_qwe</data>                       #change_me_to_"xxx"    </testcase>    <testcase classname="Configuration" name="yyy">        <data>xyzzzz</data>                        #change_me_to_"yyy"    </testcase></testsuite>有很多跡象。名字<data>...</data>應(yīng)該在name="..."
查看完整描述

1 回答

?
神不在的星期二

TA貢獻1963條經(jīng)驗 獲得超6個贊

以下:


import xml.etree.ElementTree as ET


xml = '''<testsuite name="Setup">

    <testcase classname="Configuration" name="xxx">

        <data>abc_qwe</data>                      

    </testcase>

    <testcase classname="Configuration" name="yyy">

        <data>xyzzzz</data>                       

    </testcase>

</testsuite>'''



root = ET.fromstring(xml)

test_cases = root.findall('.//testcase')

for test_case in test_cases:

    test_case.find('./data').text = test_case.attrib['name']

    

ET.dump(root)

輸出


<testsuite name="Setup">

    <testcase classname="Configuration" name="xxx">

        <data>xxx</data>                      

    </testcase>

    <testcase classname="Configuration" name="yyy">

        <data>yyy</data>                       

    </testcase>

</testsuite>

另一種方式(用數(shù)據(jù)文本設(shè)置name屬性的值)


import xml.etree.ElementTree as ET


xml = '''<testsuite name="Setup">

    <testcase classname="Configuration" name="xxx">

        <data>data_1</data>                      

    </testcase>

    <testcase classname="Configuration" name="yyy">

        <data>data_2</data>                       

    </testcase>

</testsuite>'''



root = ET.fromstring(xml)

test_cases = root.findall('.//testcase')

for test_case in test_cases:

    test_case.attrib['name'] = test_case.find('./data').text

    

ET.dump(root)


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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