コンテンツにスキップ

未翻訳のページ

このページはまだ日本語に翻訳されていないため、英語の原文を表示しています。 翻訳に協力する

xml Module

The xml module provides base functionality for parsing and manipulating XML documents, with submodules for DOM, SAX, and ElementTree.

Complexity Reference

Operation Time Space Notes
Parse XML O(n) O(n) n = document size; DOM loads entire tree
DOM traversal O(n) O(n) n = nodes; consider SAX for large files
XPath query O(n) O(n) n = nodes searched; result depends on query

XML Processing

Using ElementTree

import xml.etree.ElementTree as ET

# Parse XML - O(n)
tree = ET.parse('data.xml')
root = tree.getroot()

# Navigate tree - O(n)
for item in root.findall('item'):
    name = item.find('name').text
    price = item.find('price').text
    print(f"{name}: {price}")

# Modify and save - O(n)
root.attrib['updated'] = 'True'
tree.write('modified.xml')

Creating XML

import xml.etree.ElementTree as ET

# Create root - O(1)
root = ET.Element('catalog')

# Add children - O(1) each
item = ET.SubElement(root, 'item')
item.set('id', '1')

name = ET.SubElement(item, 'name')
name.text = 'Product'

price = ET.SubElement(item, 'price')
price.text = '29.99'

# Save - O(n)
tree = ET.ElementTree(root)
tree.write('output.xml')