Таырыпша рісін талдау

 

Тменде келтірілген мысалда Subject рісі email.Header.make_header() кмегімен алыптасты. рісті талдау шін баса функция ткізуге кмектеседі: email.Header.decode_header (). Бл функция тізім кортежін айтарады, берілген мтін бойынша, оларды р айсысында мтін рісіні блігі жне кодтау крсетілген. Келесі мысалда бан тсініктеме келтірілген:

 

subj = """=?koi8-r?Q?=FC=D4=CF_=D0=D2=C9=CD=C5=D2_=CF=DE=C5=CE=D8_=C4=CC=C9?=

=?koi8-r?Q?=CE=CE=CF=C7=CF_=28164_bytes=29_=D0=CF=CC=D1_=D3_=D4?=

=?koi8-r?Q?=C5=CD=CF=CA_=D3=CF=CF=C2=DD=C5=CE=C9=D1=2E_=EF=CE=CF_?=

=?koi8-r?Q?=D2=C1=DA=C2=C9=CC=CF=D3=D8_=CE=C1_=CB=D5=D3=CB=C9_=D7?=

=?koi8-r?Q?_=D3=CF=CF=C2=DD=C5=CE=C9=C9=2C_=CE=CF_=CC=C5=C7=CB=CF?=

=?koi8-r?Q?_=D3=CF=C2=C9=D2=C1=C5=D4=D3=D1_=D7_=D4=C5=CB=D3=D4_?=

=?koi8-r?Q?=D3_=D0=CF=CD=CF=DD=D8=C0_email=2EHeader=2Edecode=5Fheader?=

=?koi8-r?Q?=28=29?="""

import email.Header

for text, enc in email.Header.decode_header(subj):

print enc, text

 

Нтижесінде:

koi8-r Бл хабарлама таырыбымен берілген те зын (164 bytes) рісті мысалы. Ол хабарлама бліктеріне блінген, біра email.Header.decode_header ( ) кмегімен мтінге тез жинаталады.

 

Айта кететіні, крсетпеседе болады:

 

>>> email.Header.decode_header("simple text")

[('simple text', None)]

>>> email.Header.decode_header("пример")

[('\xd0\xd2\xc9\xcd\xc5\xd2', None)]

>>>email.Header.decode_header("=?KOI8-R?Q?=D0=D2=CF_?=Linux")

[('\xd0\xd2\xcf ', 'koi8-r'), ('Linux', None)]

 

Егер бірінші жадайда us-ascii тспалдауа болатын болса, онда екінші жадайда кодтау жайында аару керек болады: міне осыан байланысты электронды хатта жайдан жай сегіздік кодтауды олдануа болмайды. шінші мысалда орысша ріптер кодталан, ал латынша – кодталмаан, сондытан email.Header.decode_header() нтижесінде екі жп тізімі.

 

Жалпы жадайда хабарлама рісін тек Unicode-та сынуа болады. Осындай трлендіру шін функция ру жаттыу ретінде сынылады.

 

XML тілі

 

Бір дрісті ішінде XML не екенін тсіндіру иын жне онымен алай жмыс істеу керек екені де. Мысалда стандартты жеткізілуіне кіретін xml пакеті олданылады.

 

XML (Extensible Markup Language, Кеейтілген Белгілеу Тілі) р трлі ндіруші осымшаларыны арасында зара байланысын реттеуге, сатауа жне крделі рылымды деректерді деуге шыратуа ммкіндік береді.

 

XML тілі (HTML сияты) SGML-ді ішкі жиыны болып табылады, біра оны олданылуы WWW жйесімен шектелмеген. XML – де наты таырып шегі шін зіні тегтер жинаын руа болады. XML – де мліметтер орын деуді жне білімді, обьекттер арасында зара байланысты хаттамаларын, ресурстар сипаттамасын жне т.б. сатауа жне таратуа болады.

 

Жаа йренушілерге р кезде тсінікті емес: дл сол мліметтерді сатау шін зіні компакті форматын руа болатын болса, неге осындай жеткілікті кпсзді форматты мейілінше олдану керек. XML ерекшелігі, ол мліметтер мен оса контекстік апаратты сатайды: тегтер жне оларды атрибуттарыны аттары болады. Сондай-а, XML бгінде – біріай орта стандарт.

XML – жаттары ресми-дрыс (well-formed) жнежарамды (valid) болады. Жарамды XML – жат – бл жат трін жарнамалау (DTD, Document Type Definition) тратын ресми-дрыс XML – жаты. жат трін жарнамалау XML-дегі мтін жаты анааттандыратын грамматика сынады. Баяндаманы арапайымдылыы шін мнда DTD арастырылмайды, ммкіндігінше ресми-дрыс жатымен шектеледі.

 

ріптер мен баса да XML табаларын сыну шін Unicode пайдаланады, ол ртрлі ліпбилерді табаларын сына отырып мселелерді ысартады. Дегенмен бл жадайды есте сатау керек жне XML-де сегіздік кодтауды олданбау керек.

 

Келесі XML-жатыны жеткілікті арапайым мысалы бл формат жайлы крініс береді (expression.xml файлы):

<?xml version="1.0" encoding="iso-8859-1"?>

<expression>

<operation type="+">

<operand>2</operand>

<operand>

<operation type="*">

<operand>3</operand>

<operand>4</operand>

</operation>

</operand>

</operation>

</expression>

 

XML-жаты р кезде ааш рылымына ие, тбірінде зі жат. Оны бліктері, салынан тегтер жбымен сипатталан, тарамдар алыптастырады. Осылайша, ааш абырасы “тікелей тіркеме” білдіреді. Тег атрибуттарын жапыратары деп санауа болады. Сонда шыатыны жат ааш рылымына ие.

Ескерту:

Ескере кететіні, HTML-ден ерекшелігі, XML-де жалыз (жп емес) тегтер иаш сызыпен: <BR/>, ал атрибуттар – тырнашаа алынып жазылады. XML-де тегтер атауындаы жне атрибуттаы ріптер регистрі мнге ие.