У меня есть большой XML-файл, который выглядит следующим образом. В основном я хочу извлечь часть xml-файла, который имеет, например, этот "<ManagedElementId string = "rbs064841"/>"
.Как извлечь часть xml-файла
<Model version = "1" importVersion = "12.2">
<Create>
<SubNetwork networkType = "WRAN" userLabel="AHPTUR14">
<ManagedElement sourceType = "CELLO">
<ManagedElementId string = "rbs064841"/>
<primaryType type = "RBS"/>
<managedElementType types = ""/>
<associatedSite string = "Site=site06484"/>
<nodeVersion string = "W12B"/>
<platformVersion string = "Cello 12.2"/>
<swVersion string = ""/>
<vendorName string = "ERICSSON"/>
<userDefinedState string = ""/>
<managedServiceAvailability int = "1"/>
<isManaged boolean = "true"/>
<neMIMVersion string = "vS.1.150"/>
<connectionStatus string = "ON"/>
</ManagedElement>
</SubNetwork>
<SubNetwork networkType = "WRAN" userLabel = "AHPT78">
<ManagedElement sourceType = "CELLO">
<ManagedElementId string = "rbs04798"/>
<primaryType type = "RBS"/>
<managedElementType types = ""/>
<associatedSite string = "Site=site06484"/>
<nodeVersion string = "W12B"/>
<platformVersion string = "Cello 12.2"/>
<swVersion string = ""/>
<vendorName string = "ERICSSON"/>
<userDefinedState string = ""/>
<managedServiceAvailability int = "1"/>
<isManaged boolean = "true"/>
<neMIMVersion string = "vS.1.150"/>
<connectionStatus string = "ON"/>
</ManagedElement>
</SubNetwork>
<SubNetwork networkType = "WRAN" userLabel = "AHPT4">
<ManagedElement sourceType = "CELLO">
<ManagedElementId string = "rbs04456"/>
<primaryType type = "RBS"/>
<managedElementType types = ""/>
<associatedSite string = "Site=site06484"/>
<nodeVersion string = "W12B"/>
<platformVersion string = "Cello 12.2"/>
<swVersion string = ""/>
<vendorName string = "ERICSSON"/>
<userDefinedState string = ""/>
<managedServiceAvailability int = "1"/>
<isManaged boolean = "true"/>
<neMIMVersion string = "vS.1.150"/>
<connectionStatus string = "ON"/>
</ManagedElement>
</SubNetwork>
</Create>
</Model>
, который означает, что после разбора я wnat извлечь эту часть:
<SubNetwork networkType = "WRAN" userLabel="AHPTUR14">
<ManagedElement sourceType = "CELLO">
<ManagedElementId string = "rbs064841"/>
<primaryType type = "RBS"/>
<managedElementType types = ""/>
<associatedSite string = "Site=site06484"/>
<nodeVersion string = "W12B"/>
<platformVersion string = "Cello 12.2"/>
<swVersion string = ""/>
<vendorName string = "ERICSSON"/>
<userDefinedState string = ""/>
<managedServiceAvailability int = "1"/>
<isManaged boolean = "true"/>
<neMIMVersion string = "vS.1.150"/>
<connectionStatus string = "ON"/>
</ManagedElement>
</SubNetwork>
так сделать поиск в большом файле XML с помощью ManagedElementId
, и когда нашел экстракт часть его, под которым он был найден, смысл от <SubNetwork>
до </SubNetwork>
. Я знаю, как извлечь данные из XML-файла, но я не знаю, как извлечь часть xml.file. Я использую python ElementTree. Любое пособие было бы полезно.
Я использую python 2.6, и у меня нет lxml, и из-за прав администратора я не могу его установить. Есть ли другой способ через xml.etree? – user3319356
@ user3319356, последний блок кода предназначен именно для модуля 'xml'. Позвольте мне привести в порядок ответ, чтобы вы знали, что делать – Anzel
Хорошо, спасибо, теперь все в порядке. Мне нужно разобрать большой файл, поэтому вместо переменной «s» я хочу проанализировать файл с открытым (r «C: \\ Users \\ etihkru \\ Desktop \\ BIg.xml», 'rt') как f: tree = ET.parse (f), но это не сработает? tree1 = ET.fromstring (дерево) – user3319356