【问题标题】:How to rewrite thid XML file?如何重写 XML 文件?
【发布时间】:2023-02-05 21:50:58
【问题描述】:

我试图重写这个包含这个 XML 代码的 xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<BrowserAutomationStudioProject>
     <ModelList>
          <Model>
               <Name>token</Name>
               <Description ru="token" en="token"/>
               <Value>5660191076:AAEY8RI3hXcI3dEvjWAj7p2e7DdxOMNjPfk8</Value>
          </Model>
          <Defaults/>
          <Model>
               <Name>chat_id</Name>
               <Value>5578940124</Value>
          </Model>
          <Defaults/>
     </ModelList>
</BrowserAutomationStudioProject>

我的蟒蛇代码:

import xml.etree.ElementTree as ET

tree = ET.parse('Actual.xml')
root = tree.getroot()

for model in root.findall('Model'):
    name = model.find('Name').text
    if name == 'token':
        model.find('Value').text = '123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    if name == 'chat_id':
        model.find('Value').text = '1234567890'

tree.write('xml_file.xml')

它有效,但我得到了相同的文件:

<?xml version="1.0" encoding="UTF-8"?>
<BrowserAutomationStudioProject>
     <ModelList>
          <Model>
               <Name>token</Name>
               <Description ru="token" en="token"/>
               <Value>5660191076:AAEY8RI3hXcI3dEvjWAj7p2e7DdxOMNjPfk8</Value>
          </Model>
          <Defaults/>
          <Model>
               <Name>chat_id</Name>
               <Value>5578940124</Value>
          </Model>
          <Defaults/>
     </ModelList>
</BrowserAutomationStudioProject>

我的代码有什么问题? 连ChatGPT都帮不了我哈哈 我什至尝试打印它,但它不起作用 我该做什么? 请帮我。

【问题讨论】:

    标签: python xml xml-parsing lxml


    【解决方案1】:

    如文档中所述,Element.findall() finds only elements with a tag which are direct children of the current element.。你需要强制 ET selects all subelements, on all levels beneath the current element by using //

    由于&lt;Model&gt; 不是直接的root 的孩子(它是孙子,或者类似的东西 :)),root.findall('Model') 找不到任何东西。所以要让 ET 找到它,你需要将其修改为

    root.findall('.//Model')
    

    它应该工作。

    【讨论】:

      【解决方案2】:

      您也可以使用for model in root.findall('ModelList/Model')

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-12
        • 1970-01-01
        • 1970-01-01
        • 2022-01-05
        • 1970-01-01
        相关资源
        最近更新 更多