Какова большая часть модуля синтаксического анализатора/генератора/шаблона Pythonic XHTML/HTML, который поддерживает DOM как доступ?

При использовании SQL Server 2005 (или больше), Вы могли бы хотеть рассмотреть переключение на NVARCHAR (МАКС) в Вашем определении таблицы; ТЕКСТ, NTEXT и Типы данных image SQL Server 2000 будут удерживаться от использования в будущих версиях SQL Server. 2005 SQL Server предоставляет обратную совместимость типам данных, но необходимо, вероятно, использовать VARCHAR (МАКС), NVARCHAR (МАКС) и VARBINARY (МАКС) вместо этого.

8
задан Luke Stanley 16 November 2009 в 23:21
поделиться

2 ответа

Первую часть можно по большей части выполнить с помощью ElementTree , но для этого потребуется еще несколько шагов:

>>> import xml.etree.ElementTree as ET
>>> html = ET.XML('<html><head><title>Hi</title></head><body></body></html>')
>>> html.head = html.find('head')
>>> html.head.append(ET.XML('<link type="text/css" href="main.css" rel="stylesheet" />'))
>>> html.head.title = html.head.find('title')
>>> html.head.title.text
'Hi'

Вторую часть можно завершить, создав объекты Element, но вам нужно будет проделать некоторую работу, чтобы все произошло так, как вы действительно хотите:

>>> html.body = html.find('body')
>>> my_h1 = ET.Element('h1', {'class': 'roflol'})
>>> my_h1.text = 'BIG TITLE!12'
>>> html.body.append(my_h1)
>>> html.body.SOURCE = ET.tostring(html.body)
>>> html.body.SOURCE
'<body><h1 class="roflol">BIG TITLE!12</h1></body>'

Вы можете создать таблицу стилей ваша собственная функция:

>>> def stylesheet(href='', type='text/css', rel='stylesheet', **kwargs):
...     elem = ET.Element('link', href=href, type=type, rel=rel) 
...     return elem
... 
>>> html.head.append(stylesheet(href="main.css"))

И весь документ:

>>> ET.tostring(html)
<html><head><title>Hi</title><link href="main.css" rel="stylesheet" type="text/css" /></head><body><h1 class="roflol">BIG TITLE!12</h1></body></html>

Но я думаю, что если вы собираетесь написать свою собственную вещь, это хорошее место для начала. ElementTree очень мощный.

Edit: Я понимаю, что это, вероятно, не совсем то, что вы ' повторно ищем. Я просто хотел предложить что-то в качестве доступной альтернативы, а также доказать, что это действительно можно сделать без особых усилий.

5
ответ дан 5 December 2019 в 22:19
поделиться

Amara Bindery предоставляет самый лучший Pythonic XML API, который я когда-либо видел. См. Краткий справочник , руководство и часто задаваемые вопросы

1
ответ дан 5 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: