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

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

如何正確地從這個(gè)嵌套的 XML 中獲取數(shù)據(jù)?

如何正確地從這個(gè)嵌套的 XML 中獲取數(shù)據(jù)?

犯罪嫌疑人X 2023-07-18 16:44:16
我有以下 XML:<?xml version="1.0" encoding="UTF-8"?><data>  <columns>    <Leftover index="5">Leftover</Leftover>    <NODE5 index="6"></NODE5>    <NODE6 index="7"></NODE6>    <NODE8 index="9"></NODE8>    <Nomenk__Nr_ index="2">Nomenk.Nr.</Nomenk__Nr_>    <Year index="8">2020</Year>    <Name index="1">Name</Name>    <Value_code index="3">Value code</Value_code>  </columns>  <records>    <record index="1">      <Leftover>Leftover</Leftover>      <NODE5>Test1</NODE5>      <NODE6>Test2</NODE6>      <NODE8>Test3</NODE8>      <Nomenk__Nr_></Nomenk__Nr_>      <Name></Name>      <Value_code></Value_code>    </record>  ... (it repeats itself with different values and the index value increments)我的代碼是:import lxmlimport lxml.etree as etxml = open('C:\outputfile.xml', 'rb')xml_content = xml.read()tree = et.fromstring(xml_content)for bad in tree.xpath("//records[@index=\'*\']/NODE5"):  bad.getparent().remove(bad)     # here I grab the parent of the element to call the remove directly on itresult = (et.tostring(tree, pretty_print=True, xml_declaration=True))f = open( 'outputxml.xml', 'w' )f.write( str(result) )f.close()我需要做的是刪除 NODE5、NODE6、NODE8。我嘗試使用通配符,然后指定一個(gè)節(jié)點(diǎn)(參見第 6 行),但這似乎不起作用...我還在第一個(gè)字符的循環(huán)之后收到語法錯(cuò)誤,但代碼執(zhí)行了。我的問題還在于,當(dāng)文件“導(dǎo)出”時(shí),lxml 的編碼隨后設(shè)置為 ASCII。更新 我在第 8 行收到此錯(cuò)誤:    return = ...    ^SyntaxError: invalid syntax
查看完整描述

1 回答

?
慕斯王

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

我需要做的是刪除 NODE5、NODE6、NODE8。


以下


import xml.etree.ElementTree as ET



xml = '''<?xml version="1.0" encoding="UTF-8"?>

<data>

   <columns>

      <Leftover index="5">Leftover</Leftover>

      <NODE5 index="6" />

      <NODE6 index="7" />

      <NODE8 index="9" />

      <Nomenk__Nr_ index="2">Nomenk.

Nr.</Nomenk__Nr_>

      <Year index="8">2020</Year>

      <Name index="1">Name</Name>

      <Value_code index="3">Value code</Value_code>

   </columns>

   <records>

      <record index="1">

         <Leftover>Leftover</Leftover>

         <NODE5>Test1</NODE5>

         <NODE6>Test2</NODE6>

         <NODE8>Test3</NODE8>

         <Nomenk__Nr_ />

         <Name />

         <Value_code />

      </record>

      <record index="21">

         <Leftover>Leftover</Leftover>

         <NODE5>Test11</NODE5>

         <NODE6>Test21</NODE6>

         <NODE8>Test39</NODE8>

         <Nomenk__Nr_ />

         <Name />

         <Value_code />

      </record>      

   </records>

</data>'''


root = ET.fromstring(xml)


col = root.find('./columns')

for x in ['5','6','8']:

    nodes_to_remove = col.findall('./NODE{}'.format(x))

    for node in nodes_to_remove:

        col.remove(node)

records = root.find('./records')

records_lst = records.findall('./record'.format(x))

for r in records_lst:

    for x in ['5','6','8']:

        nodes_to_remove = r.findall('./NODE{}'.format(x))

        for node in nodes_to_remove:

            r.remove(node)

       

ET.dump(root)

輸出


<data>

   <columns>

      <Leftover index="5">Leftover</Leftover>

      <Nomenk__Nr_ index="2">Nomenk.

Nr.</Nomenk__Nr_>

      <Year index="8">2020</Year>

      <Name index="1">Name</Name>

      <Value_code index="3">Value code</Value_code>

   </columns>

   <records>

      <record index="1">

         <Leftover>Leftover</Leftover>

         <Nomenk__Nr_ />

         <Name />

         <Value_code />

      </record>

      <record index="2">

         <Leftover>Leftover</Leftover>

         <Nomenk__Nr_ />

         <Name />

         <Value_code />

      </record>      

   </records>

</data>


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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