from xml.dom import minidom dom = minidom.Document() 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

from xml.dom import minidom dom = minidom.Document()

Поиск

import sys

 

from xml.sax.saxutils import XMLGenerator g = XMLGenerator(sys.stdout) g.startDocument() g.startElement("expression", {}) g.startElement("operation", {"type": "+"}) g.startElement("operand", {}) g.characters("2")

 

g.endElement("operand") g.startElement("operand", {}) g.startElement("operation", {"type": "*"}) g.startElement("operand", {}) g.characters("3")

g.endElement("operand") g.startElement("operand", {}) g.characters("4") g.endElement("operand") g.endElement("operation") g.endElement("operand") g.endElement("operation") g.endElement("expression") g.endDocument()

 

Построение дерева объектной модели документа может выглядеть,например,так:

 

from xml.dom import minidom dom = minidom.Document()

 

e1 = dom.createElement("expression") dom.appendChild(e1)

 

p1 = dom.createElement("operation") p1.setAttribute('type', '+')

 

x1 = dom.createElement("operand") x1.appendChild(dom.createTextNode("2")) p1.appendChild(x1)

e1.appendChild(p1)

 

p2 = dom.createElement("operation") p2.setAttribute('type', '*')

x2 = dom.createElement("operand") x2.appendChild(dom.createTextNode("3")) p2.appendChild(x2)

 

x3 = dom.createElement("operand") x3.appendChild(dom.createTextNode("4")) p2.appendChild(x3)

 

x4 = dom.createElement("operand") x4.appendChild(p2) p1.appendChild(x4)

 

print dom.toprettyxml()

 

Легко заметить,что при использованииSAXкоманды на генерацию тегов и других частей выдаются последовательно,а вот построение одной и той жеDOMможно выполнять

 

различными последовательностями команд формирования узла и его соединения с другими узлами.

 

Конечно,указанные примеры носят довольно теоретический характер,так как на практике строитьXML-документы таким образом обычно не приходится.

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 51; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.01 с.)