Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 解析xml并将其复制到新文件?_Python_Xml_Parsing - Fatal编程技术网

Python 解析xml并将其复制到新文件?

Python 解析xml并将其复制到新文件?,python,xml,parsing,Python,Xml,Parsing,我需要解析一个大的xml文件,并让我的代码使用原始文件中需要的元素生成一个新的xml文件。你会怎么做?很多时候我会复制代码,有时编辑和插入我自己的代码。有哪些模块可以让我的生活更轻松?如果我想解析所有这些东西,复制到一个新文件,但更改动作标记,等等,这些东西在python中容易完成吗 <COMMAND name="interface range" help="Apply commands to a range of ports" view="configur

我需要解析一个大的xml文件,并让我的代码使用原始文件中需要的元素生成一个新的xml文件。你会怎么做?很多时候我会复制代码,有时编辑和插入我自己的代码。有哪些模块可以让我的生活更轻松?如果我想解析所有这些东西,复制到一个新文件,但更改动作标记,等等,这些东西在python中容易完成吗

<COMMAND name="interface range"
        help="Apply commands to a range of ports"
        view="configure-range-view"
        viewid="iface-range">
        <PARAM name="interface_method"
           help="Method to get interface information"
           optional="false"
           ptype="SUBCOMMAND"
           mode="switch">
           <PARAM name="FastEthernet"
                  help="FastEthernet IEEE 802.3"
                  ptype="SUBCOMMAND"
                  mode="subcommand">
                  <PARAM name="iface_num"
                         help="FastEthernet interface number"
                         ptype="IFACE_NUM">            
                  </PARAM>
           </PARAM>
           <PARAM name="GigabitEthernet"
                  help="GigabitEthernet IEEE 802.3z"
                  ptype="SUBCOMMAND"
                  mode="subcommand">
                  <PARAM name="iface_num"
                         help="GigabitEthernet interface number"
                         ptype="GIGETH_NUM">
                  </PARAM>      
           </PARAM>

        </PARAM>

        <ACTION>
        /path/to-scripts/script.py
        </ACTION>
</COMMAND>                    

/path/to scripts/script.py

这是我正在使用的页面,其中列出了库,wiki.python.org/moin/PythonXml我不想找人工/代码等,我希望自己做这件事,我想了解人们在这方面的经验,我想知道是否有一种大家都使用的标准形式,比如ElementTree。我在这里读过其他的帖子,也问过同样的问题,但都是老问题

我也面临着类似的情况。我使用xml.etree.ElementTreecopy模块来解析和复制xml。默认情况下,我使用了浅拷贝。您可以使用deepcopy

import xml.etree.ElementTree as ET
import copy

tree = ET.parse("SourceFile.xml")
root = tree.getroot()

command = ET.Element("COMMAND")

for param in root.iter('COMMAND'):
    condition:
        paramscopy = copy.copy(param)
        command.append(paramscopy)

btree = ET.ElementTree(command)
btree.write("NewFile.xml")

你的第一次尝试是什么样子的?你第一次在谷歌上搜索python xml的结果是什么?@rectummelancolique我从pythonxml中获得了ElementTree,但是有很多不同的库等等,所以我想从人们的经验中了解他们使用什么,以及为什么他们认为它很好,它是否符合我的要求,限制是什么等等然后明确地引用您考虑过的库、您使用它们编写的代码以及您不喜欢使用这些库的地方。因为这是你的问题,看起来你根本没有做任何努力,你在追求自由劳动。@rectummelancolique这是我正在使用的页面,其中列出了库,我不是在寻找劳动/代码等,我希望自己做这件事,我是在寻找人们在这方面的经验,我想知道是否有一种大家都使用的标准格式,比如ElementTree。我在这里读过其他的帖子,也问过同样的问题,但都是老问题。这是一个可行的选择。它可以。查看“序列化”示例,了解如何重写XML的示例。