Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 13625|Відповідь: 0

[Джерело] Python реалізує розбір файлів у форматі XML

[Копіювати посилання]
Опубліковано 05.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>
    <Ім'я користувача="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.*

Модель об'єкта документа (DOM) — це стандартний інтерфейс програмування, рекомендований організацією W3C для роботи з розширюваними мовами розмітки. Коли парсер DOM аналізує XML-документ, він читає весь документ одночасно, зберігає всі елементи документа у структурі дерева в пам'яті, а потім можна використовувати різні функції, надані DOM, щоб читати або змінювати вміст і структуру документа, або записувати змінений вміст у xml-файл. Використовуйте xml.dom.minidom у Python для розбору xml-файлу.

a. Отримати субтеги
b. Мітки, що розрізняють однакове ім'я тегу
c. Отримати значення атрибута тегу
d. Отримувати дані між парами міток

Вихід:

2.2 xml.etree.ElementTree

ElementTree був створений для обробки XML, і в бібліотеці стандарту Python є дві реалізації: одна — чиста Python, наприклад xml.etree.ElementTree, а інша — швидша xml.etree.cElementTree. Примітка: спробуйте використовувати мову C для реалізації, оскільки вона швидша і споживає менше пам'яті.

a. Пройти наступний шар кореневого вузла
b. Доступ до окремих тегів, атрибутів і тексту через індекс
c. Знайти вказаний тег під коренем
d. Обхід XML-файлів
e. Модифікація XML-файлу

Вихід:

Додається:

2.3 xml.sax.*

SAX — це подійний API, який використовує SAX для розбору XML у двох частинах: парсер і обробник подій.

Парсер відповідає за читання XML-документа та надсилання подій обробнику подій, таких як початок елементів і кінцеві події елемента

Процесор подій відповідає за реагування на події та обробку переданих XML даних

Поширені сценарії:

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

(2) Потрібна лише частина документа, або конкретна інформація отримується лише з файлу

(3) Я хочу створити власну модель об'єкта





Попередній:Рішення: Інсталятор, використаний для встановлення Visual Studio, неповний
Наступний:VS Код швидке форматування ярликів
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com