免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 556 | 回复: 0

python实现分割xml文件 [复制链接]

论坛徽章:
0
发表于 2019-03-08 17:14 |显示全部楼层
5可用积分
xml文件a.xml,但是格式不规范,<managedObject></managedObject>  或者 <managedObject .../> 两种格式  有的里面没有子元素

a.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE raml SYSTEM 'raml20.dtd'>
<raml version="2.0" xmlns="raml20.xsd">
  <cmData type="actual">
    <header>
      <log dateTime="2019-02-27T17:28:38" action="created" appInfo="ActualExporter">InternalValues are used</log>
    </header>
    <managedObject class="MRBTS" version="SBTS17A_1707_001" distName="PLMN-PLMN/MRBTS-804874" id="2048554">
      <p name="name">WZWL20</p>
      <p name="btsName">WZW0020</p>
    </managedObject>
    <managedObject class="MRBTS" version="SBTS17A_1707_001" distName="PLMN-PLMN/MRBTS-805575" id="2056406">
      <p name="name">WZWL129</p>
      <p name="btsName">WZW0129</p>
    </managedObject>
    <managedObject class="MRBTS" version="SBTS17A_1707_001" distName="PLMN-PLMN/MRBTS-808996" id="1910785">
      <p name="name">WZWL147</p>
      <p name="btsName">WZW0147</p>
    </managedObject>
    <managedObject class="VLANIF" version="SBTS16.10" distName="PLMN-PLMN/MRBTS-804874/TNL-1/ETHSVC-1/ETHIF-1/VLANIF-1" id="1018535">
      <p name="vlanId">3002</p>
    </managedObject>
    <managedObject class="VLANIF" version="SBTS16.10" distName="PLMN-PLMN/MRBTS-805575/TNL-1/ETHSVC-1/ETHIF-1/VLANIF-2" id="1018536">
      <p name="vlanId">902</p>
    </managedObject>
    <managedObject class="VLANIF" version="SBTS16.10" distName="PLMN-PLMN/MRBTS-808996/TNL-1/ETHSVC-1/ETHIF-1/VLANIF-3" id="1018537">
      <p name="vlanId">2000</p>
    </managedObject>
    <managedObject class="EQM" version="EQM17A_1708_008" distName="PLMN-PLMN/MRBTS-804874/EQM-1" id="2093977"/>
    <managedObject class="TNLSVC" version="TNL17A_1708_008" distName="PLMN-PLMN/MRBTS-805575/TNLSVC-1" id="2093000"/>
    <managedObject class="EQM_R" version="EQMR17A_1708_008" distName="PLMN-PLMN/MRBTS-808996/EQM_R-1" id="2092995"/>
  </cmData>
</raml>


这里想实现------将xml文件分割成若干小文件,以distname区分, 类似的MRBTS-804874分割到一个文件中, 比如PLMN-PLMN/MRBTS-804874 以及 PLMN-PLMN/MRBTS-804874/EQM-1这样的输出到一个文件,用PLMN-PLMN/MRBTS-804874命名
请教诸位大神,如何在linux 用python脚本实现,小白一枚 先谢过诸位了  想输出的效果如下:

MRBTS-804874.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE raml SYSTEM 'raml20.dtd'>
<raml version="2.0" xmlns="raml20.xsd">
  <cmData type="actual">
    <header>
      <log dateTime="2019-02-27T17:28:38" action="created" appInfo="ActualExporter">InternalValues are used</log>
    </header>
    <managedObject class="MRBTS" version="SBTS17A_1707_001" distName="PLMN-PLMN/MRBTS-804874" id="2048554">
      <p name="name">WZWL20</p>
      <p name="btsName">WZW0020</p>
    </managedObject>    <managedObject class="VLANIF" version="SBTS16.10" distName="PLMN-PLMN/MRBTS-804874/TNL-1/ETHSVC-1/ETHIF-1/VLANIF-1" id="1018535">
      <p name="vlanId">3002</p>
    </managedObject>
    <managedObject class="EQM" version="EQM17A_1708_008" distName="PLMN-PLMN/MRBTS-804874/EQM-1" id="2093977"/>
  </cmData>
</raml>






MRBTS-805575.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE raml SYSTEM 'raml20.dtd'>
<raml version="2.0" xmlns="raml20.xsd">
  <cmData type="actual">
    <header>
      <log dateTime="2019-02-27T17:28:38" action="created" appInfo="ActualExporter">InternalValues are used</log>
    </header>
    <managedObject class="MRBTS" version="SBTS17A_1707_001" distName="PLMN-PLMN/MRBTS-805575" id="2048554">
      <p name="name">WZWL20</p>
      <p name="btsName">WZW0020</p>
    </managedObject>    <managedObject class="VLANIF" version="SBTS16.10" distName="PLMN-PLMN/MRBTS-805575/TNL-1/ETHSVC-1/ETHIF-1/VLANIF-1" id="1018535">
      <p name="vlanId">3002</p>
    </managedObject>
    <managedObject class="EQM" version="EQM17A_1708_008" distName="PLMN-PLMN/MRBTS-805575/EQM-1" id="2093977"/>
  </cmData>
</raml>







MRBTS-808996.xml
........

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

基于案例的 SQL 优化实战训练营

讲师:中电福富特级专家梁敬彬,参与本次课程培训,你将收获:
1. 能编写出较为高效的 SQL;
2. 能解决70%以上的数据库常见优化问题;
3. 能得到老师提供的高效的相关工具和解决方案;
4. 能举一反三,收获不仅仅是 SQL 优化。
现在购票享受8.8折优惠!
----------------------------------------
优惠时间:2019年3月20日前

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP