Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 13625|Отговор: 0

[Източник] Python реализира парсиране на XML файлове

[Копирай линк]
Публикувано в 5.06.2018 г. 14:27:09 ч. | | |
1. XML Въведение

XML (eXtensible Markup Language) се отнася до разширим език за маркиране, предназначен за предаване и съхранение на данни, и се е превърнал в ядрото на много нови технологии днес, с различни приложения в различни области. Това е неизбежен продукт на развитието на уеб до определен етап, който притежава основните характеристики на SGML, простите характеристики на HTML и много нови функции като ясен и добре структуриран.

тест. XML файл

<?xml version="1.0" encoding="utf-8"?>
<catalog>
    <maxid>4</maxid>
    <login username="pytest" passwd='123456'>
        <caption>Python</caption>
        <item id="4">
            <caption>Тест</caption>
        </item>
    </login>
    <item id="2">
        <caption>Зопе</caption>
    </item>
</catalog>

За подробно въведение в XML, моля, вижте на:http://www.w3school.com.cn/xmldom/dom_nodetype.asp

2. XML разбор на документи

Съществуват три често използвани метода за разбор на XML в python: единият е модулът xml.dom.*, който е имплементация на W3C DOM API, който е много подходящ, ако трябва да обработите DOM API; Вторият е модулът xml.sax.*, който е реализация на SAX API, жертвайки удобството в полза на скоростта и капацитета на паметта, а SAX е API, базиран на събития, което означава, че може да обработва огромен брой документи "във въздуха", без да се налага да ги зарежда изцяло в паметта; Третият е модулът xml.etree.ElementTree (накратко ET), който предоставя лек API в стил Python, много по-бърз от DOM, и има много приятни API-та, които могат да се използват; в сравнение със SAX, ET.iterparse на ET също предоставя метод за обработка "във въздуха", няма нужда да се зарежда целият документ в паметта, а средната производителност на ET е подобна на тази в SAX. Въпреки това, API е малко по-ефективен и лесен за използване.

2.1 xml.dom.*

Document Object Model (DOM) е стандартен програмен интерфейс, препоръчан от организацията W3C за обработка на разширяеми езици за маркиране. Когато DOM парсер парсира XML документ, той чете целия документ наведнъж, съхранява всички елементи в дървовидна структура в паметта и след това можете да използвате различни функции, предоставени от DOM, за да четете или променяте съдържанието и структурата на документа, или да запишете промененото съдържание в xml файла. Използвайте xml.dom.minidom в Python, за да анализирате xml файла.

а. Вземете подтагове
б. Етикети, които отличават едно и също име на етикет
в. Получаване на стойността на атрибута на тага
г. Получаване на данни между двойки етикети

Изход:

2.2 xml.etree.ElementTree

ElementTree е създаден, за да обработва XML, а в стандартната библиотека на Python има две имплементации: едната е чиста Python имплементация, като xml.etree.ElementTree, а другата е по-бърза xml.etree.cElementTree. Забележка: Опитайте да използвате езика C, за да го реализирате, тъй като е по-бърз и използва по-малко памет.

a. Преминете следващия слой на кореновия възел
b. Индекс достъп до отделни тагове, атрибути и текст
в. Намерете посочения таг под root
г. Преминаване през XML файлове
д. Модифициране на XML файла

Изход:

Прикачено:

2.3 xml.sax.*

SAX е API, управляван от събития, който използва SAX за парсиране на XML в две части: парсер и обработващ се събития.

Парсерът отговаря за четенето на XML документа и изпращането на събития към обработващия се събития, като например начало на елемент и край на елемента

Процесорът на събития отговаря за реакцията на събитията и обработката на XML данните, които са предадени

Чести сценарии:

(1) Обработване на големи документи

(2) Изисква се само част от документа, или конкретна информация се получава само от досието

(3) Искам да изградя собствен модел на обекта





Предишен:Решение: Инсталаторът, използван за инсталиране на Visual Studio, е незавършен
Следващ:VS Code код бързи форматиращи преки пътища
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com