在Python中将XML解析为字典

时间:2018-02-26 10:54:08

标签: python xml

我有以下xml文件。我需要针对不同的环境自动查找/替换一堆文件中的一些字符串。我正在使用python 2.7。我需要传递环境名称并将xml读入字典或数组,然后我可以使用它来查找/替换字符串。我尝试过使用ElementTree,但不确定如何为每个环境构建包含旧/新文本的dict。有任何建议请..

     <?xml version="1.0" encoding="utf-8" ?>
    <Config>
    <Environment env="Support">
      <sitedir path="d:\Support_463\REST Elements\Sites"/>
      <workflowdir path="d:\Support_463\REST 
    Elements\Sites\Resources\Workflows"/>
      <sitereplacements>
        <text old="zz-dev" new="zz-supp"/>
        <text old="yhz" new="vr"/>
        <text old="ax7" new="sh66^"/>
      </sitereplacements>
      <workflowreplacements>
        <text old="zz-dev" new="zz-suppx"/>
        <text old="yhsxz" new="v*&9r"/>
        <text old="ax7" new="(()&4fg"/>
      </workflowreplacements>
</Environment>
<Environment env="Test">
      <sitedir path="d:\Test_463\REST Elements\Sites"/>
      <workflowdir path="d:\Test_463\REST Elements\Sites\Resources\Workflows"/>
      <sitereplacements>
        <text old="zz-dev" new="zz-test"/>
        <text old="yhz" new="vxxAr"/>
        <text old="ax7" new="s8%6^"/>
      </sitereplacements>
      <workflowreplacements>
        <text old="zz-dev" new="zz-testx"/>
        <text old="yhsxz" new="vr"/>
        <text old="ax7" new="$%^"/>
      </workflowreplacements>
</Environment>
<!--<Environment env="Preprod">
      <sitedir path=""/>
      <workflowdir path=""/>
      <sitereplacements>
        <text old="" new=""/>
        <text old="" new=""/>
        <text old="" new=""/>
      </sitereplacements>
      <workflowreplacements>
        <text old="" new=""/>       
        <text old="" new=""/>
        <text old="" new=""/>
      </workflowreplacements>-->
</Environment>

1 个答案:

答案 0 :(得分:0)

您可以使用xml.etree.ElementTree作为ET。

查看以下链接了解更多详情

https://docs.python.org/2/library/xml.etree.elementtree.html

19.7.1.3。寻找有趣的元素 &安培; 19.7.1.4。修改XML文件