免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3504 | 回复: 2
打印 上一主题 下一主题

python处理XML文件删除段落问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2018-04-21 12:51 |只看该作者 |倒序浏览
本帖最后由 gfan2 于 2018-04-21 12:53 编辑

刚学习python中,想了解在处理xml格式文件时python比sed,awk是否有优势,请教如何用python处理下面问题,谢谢。

根据外部条件处理xml段落, 如 xml文件中name里能匹配上外部条件的一行,则删除该Name的<matchine到<matchine>段落

外部条件文件内容cat T1
room-177
room-178
room-348
...
...
...



T2.xml文件:
<?xml version="1.0"?>
<system>
   <machine class="TESTGROUP361" Name="group/room-178" operation="create" >
          <server name="log_collect">
             <processes>1</processes>
             <threads>1</threads>
             <options>-t1 </options>
             <desc/>
          </server>
          <server name="dcs_fresh">
             <processes>1</processes>
             <threads>1</threads>
             <options>-a192.168.0.1</options>
             <desc/>
          </server>
    </machine>
   <machine class="TESTGROUP361" Name="group/room-178/class-730" operation="create" >
         <server name="log_collect">
            <processes>1</processes>
            <threads>1</threads>
            <options>-t1 </options>
            <desc/>
         </server>
         <server name="dcs_fresh">
            <processes>1</processes>
            <threads>1</threads>
            <options>-a192.168.1.1</options>
            <desc/>
         </server>
   </machine>
   <machine class="TESTGROUP472" Name="group/room-349/class-970" operation="create" >name="web02">
         <server name="log_collect">
            <processes>2</processes>
            <threads>2</threads>
            <options>-t2 </options>
            <desc/>
         </server>
         <server name="dcs_fresh">
            <processes>2</processes>
            <threads>2</threads>
            <options>-a192.168.1.2</options>
            <desc/>
         </server>
   </machine>
   <machine class="TESTGROUP971" Name="group/room-286/class-340" operation="create" >name="web02">
         <server name="log_collect">
            <processes>2</processes>
            <threads>2</threads>
            <options>-t2 </options>
            <desc/>
         </server>
         <server name="dcs_fresh">
            <processes>3</processes>
            <threads>3</threads>
            <options>-a192.168.1.3</options>
            <desc/>
         </server>
   </machine>  
....
....
....
....
</system>

论坛徽章:
0
2 [报告]
发表于 2018-04-22 06:58 |只看该作者
哪位大师帮忙指点一下,python2或python3版本都行

论坛徽章:
30
申猴
日期:2014-04-10 09:43:532015年亚洲杯纪念徽章
日期:2015-03-20 14:40:232015亚冠之阿尔纳斯尔
日期:2015-06-02 18:59:042015亚冠之阿尔希拉尔
日期:2015-06-30 15:22:572015亚冠之大阪钢巴
日期:2015-07-20 10:44:332015亚冠之阿尔纳斯尔
日期:2015-10-28 14:57:5215-16赛季CBA联赛之新疆
日期:2015-12-25 10:18:45黑曼巴
日期:2016-06-26 21:39:5315-16赛季CBA联赛之山西
日期:2016-07-25 21:54:2715-16赛季CBA联赛之北京
日期:2016-10-27 12:07:2315-16赛季CBA联赛之八一
日期:2017-07-07 16:39:0915-16赛季CBA联赛之吉林
日期:2017-09-04 12:14:43
3 [报告]
发表于 2018-04-23 22:35 |只看该作者
回复 1# gfan2

python 3
with open ('file.txt') as f,open('file1.txt') as f1:
        l1 = []
        l = f.readlines()
        s = f1.read()
        s1=s.split('</machine>')
        for i in l:
                for j in s1:
                        if i.strip("\n") in j:
                                l1.append(j)
print (re.split('\n +',s)[0]+'</machine>'.join(set(s1)-set(l1)))

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP