Удалите строки из файла XML с помощью Python и сохраните его как новый файл XML - PullRequest
0 голосов
/ 07 марта 2020

У меня есть файл XML, как показано ниже. Я хочу удалить несколько строк сверху и снизу и сохранить его как новый xml файл. Мне нужно удалить все до и после тега "MeasData". Есть ли простой способ сделать это в Python?

    <?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="MeasDataCollection.xsl"?>
  <measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec">
  <fileHeader fileFormatVersion="32.435 V10.0"
          vendorName="Ericsson AB">
    <fileSender elementType="RadioNode"/>
    <measCollec beginTime="2020-02-20T12:00:00+00:00"/>
    </fileHeader>

 <measData>
   <managedElement swVersion="CXP9024418_6 R80E66"/>
  <measInfo measInfoId="PM=1,PmGroup=FieldReplaceableUnit">
  <job jobId="PREDEF_Nc"/>
  <granPeriod duration="PT900S"
              endTime="2020-02-20T12:15:00+00:00"/>
  <repPeriod duration="PT900S"/>
  <measType p="1">pmPowerFailure</measType>
  <measType p="2">pmUnitTemperatureLevel</measType>
  <measValue measObjLdn="ManagedElement=1,Equipment=1,FieldReplaceableUnit=1">
    <r p="1"> </r>
    <r p="2">3,3, </r>
  </measValue>
  <measValue measObjLdn="ManagedElement=1,Equipment=1,FieldReplaceableUnit=2">
    <r p="1">0</r>
    <r p="2"> , , </r>
  </measValue>
  <measValue measObjLdn="ManagedElement=1,Equipment=1,FieldReplaceableUnit=3">
    <r p="1">0</r>
    <r p="2"> , , </r>
  </measValue>
  <measValue measObjLdn="ManagedElement=1,Equipment=1,FieldReplaceableUnit=4">
    <r p="1">0</r>
    <r p="2"> , , </r>
  </measValue>
  <measValue measObjLdn="ManagedElement=1,Equipment=1,FieldReplaceableUnit=5">
    <r p="1">0</r>
    <r p="2"> , , </r>
  </measValue>
  </measInfo>
  </measData>

    <fileFooter>
   <measCollec endTime="2020-02-20T12:30:00+00:00"/>
  </fileFooter>
      </measCollecFile>

1 Ответ

0 голосов
/ 07 марта 2020

Попробуйте сделать это с помощью Beautifulsoup:

from bs4 import BeautifulSoup as bs

collect = """[your xml above]"""

soup = bs(collect,'lxml')
target1 = soup.select_one('fileHeader')
target2 = soup.select_one('fileFooter')
target1.getparent
target1.decompose()
target2.getparent    
target2.decompose()
print(soup)

Выходные данные являются исходными xml без двух целевых узлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...