Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы работы в сети Интернет. Учебное пособие
.pdf
Текст вы во дит ся жир ным шриф том, рус ский текст кур си вом. Анг лий-
ский текст – си ним цве том, рус ский текст – крас ным.
Для ре ше ния этой за да чи нуж но со ста вить таб ли цу сти лей и по мес тить
ее в файл hello.CSS, а за тем под клю чить к XML-фай лу и за гру зить до ку мент
в брау зер.
В CSS файл нуж но по мес тить пра ви ла:
NODE {font-weight:bold;}
RU,ENG{display:block;}
ENG{color:#0000FF;}
RU{color:#FF0000;
font-style:italic;}
Здесь:
па ра метр
че ние
ня ет ся на до чер ние те ги
во дить ся от дель ным бло ком. При зна че нии block со дер жа ние те гов вы водит ся как стро ки.
те га RU. Зна че ние
мет ров и их зна че ний.
ния XML-до ку мен та, то для их раз ме ще ния в со ста ве раз мет ки оп ре де ля ют
спе ци аль ный тег с пус тым со дер жа ни ем. В CSS-фай ле нуж но соз дать пра вило для это го те га со сле дую щи ми осо бен но стя ми:
ко то ро го соз да на сти ле вая таб ли ца, обес пе чи ваю щая за груз ку изо бра же ния
фор ма та BMP с раз ре ше ни ем 100 на 67 пик се лей и фор ма ти ро ва ние тек ста.
bold оз на ча ет за дать стан дарт ную яр кость. Его дей ст вие рас про стра-
Па ра метр
Па ра метр
Па ра метр
В при ло же нии 1 при во дит ся опи са ние ба зо во го на бо ра сти ле вых па ра-
Ес ли тре бу ет ся вы во дить гра фи че ские изо бра же ния при вы во де со дер жа-
нуж но за гру зить гра фи че ский файл в эле мент-тег;•
за пре тить его ти ра жи ро ва ние по по лю со дер жа ния те га;•
за дать раз ме ры об лас ти вы во да;•
за дать тип об те ка ния тек стом.•
На ри сун ке 2.8 по ка зан вид ок на брау зе ра с за гру жен ным до ку мен том, для
До ку мент XML со дер жит раз мет ку:
font-weight от ве ча ет за яр кость сим во лов (жир ность), зна-
RU и ENG те га NODE.
display оп ре де ля ет, бу дет ли со дер жа ние те гов RU и ENG вы-
color за да ет цвет со дер жа нию те гов ENG и RU.
font-style оп ре де ля ет на чер та ние шриф та для со дер жа ния
italic оз на ча ет вы вод тек ста кур си вом.
<?xml version=»1.0» encoding=»windows-1251»?>
<?xml-stylesheet type=»text/css» href=»picture.css»?>
41

<doc>
<picture/>
<s>Вы ста воч ная га ле рея</s>
<s>АО Кро кус</s>
<s>Ча сы ра бо ты с 10.00 до 20.00</s>
<s>В суб бо ту и вос кре се ние с 10.00 до 18.00</s>
<s>Без пе ре ры ва на обед</s>
</doc>
Сти ле вая таб ли ца, хра ня щая ся в фай ле picture.CSS, име ет струк ту ру:
s{display:block;
font-size:18px;
}
picture{background-image:url(739000.bmp);
background-repeat:no-repeat;
width:100px;
height:67px;
fl oat:left;
}
Рис. 2.8. Вы вод гра фи че ско го изо бра же ния
42

Соз да вая раз мет ку, мож но об ра щать ся к про стран ст ву имен HTML тегов:
<html:T
xmlns:html=”http://www.w3c.org/TR/REC-html40/”>
со дер жа ние
</html:T>
Здесь T – тре буе мый тег.
На при мер, вы вод раз де ли тель ной ли нии при про смот ре со дер жа ния
XML до ку мен та мож но вы пол нить те гом
<html:hr
xmlns:html=»http://www.w3c.org/TR/REC-html40/»>
</html:hr>
2.4.2. XSL-таб ли ца сти лей
Таб ли ца сти лей XSL (Extensible Stylesheet Language) – кор рект ный до кумент XML, ко то рый оп ре де ля ет спо со бы транс фор ма ции ис ход но го до кумен та с по мо щью спе ци аль ных ин ст рук ций-те гов рас ши ряе мо го язы ка стиле вой раз мет ки. Ин ст рук ции XSL слу жат для из вле че ния ин фор ма ции и пере да чи ее спе ци аль но му про цес со ру XSLT. Про цес со ры, вхо дя щие в со став
брау зе ра, пре об ра зу ют ис ход ный XML-до ку мент в HTML-стра ни цу, ко торая ото бра жа ет ся брау зе ром. В со ста ве XSL-до ку мен та мо гут на хо дить ся теги XHTML (рас ши ряе мо го HTML). На пи са ние те гов долж но от ве чать тре бова ни ям кор рект но го XML-до ку мен та.
При ме ры XHTML те гов:
<b>со дер жа ние</b>
<br/>
Для ис поль зо ва ния XSL-те гов не об хо ди мо объ я вить про стран ст во имен
<xsl:stylesheet version=»1.0»
xmlns:xsl=»http://www.w3.org/1999/XSL/Transform»>
<!--те ги XSL и XHTML-->
</xsl:stylesheet>
Про смотр ин фор ма ции тре бу ет за да ния кор ня до ку мен та с по мо щью
те га:
<xsl:template match=»/»>
</xsl:template>
43

Тег дол жен со дер жать ин ст рук ции для вы во да ин фор ма ции и те ги
XHTML. Из вле че ние ин фор ма ци он но го со дер жа ния эле мен тов вы пол ня ется с по мо щью те га:
<xsl:value-of select=»path»/>
Здесь path – путь к тре буе мо му эле мен ту-те гу XML-до ку мен та, сформи ро ван ный с уче том ие рар хии те гов. В ка че ст ве раз де ли те ля те гов ие рар-
хии слу жит сим вол «
Таб ли ца XSL долж на под сое ди нять ся к XML-до ку мен ту с по мо щью инст рук ции:
/».
<?xml-stylesheet type=»text/xsl» href=»table.xsl»?>
При мер. Рас смот рим XML-до ку мент, в ко то ром за фик си ро ва на инфор ма ция о слу жа щих: лич ный но мер, на име но ва ние от де ла слу жа ще го, фами лия с ини циа ла ми и став ка в ус лов ных еди ни цах.
<?xml version=»1.0» encoding=»windows-1251»?>
<?xml-stylesheet type=»text/xsl» href=»table.xsl»?>
<fi rma>
<worker>
<id dept=»бух гал те рия»>100</id>
<name>Ива но ва А.И.</name>
<pay>600</pay>
</worker>
<worker>
<id dept=»бух гал те рия»>500</id>
<name>Ко зы ре ва А.П.</name>
<pay>1000</pay>
</worker>
<worker>
<id dept=»склад»>300</id>
<name>Сви ри до ва С.А</name>
<pay>1500</pay>
</worker>
</fi rma>
44

К до ку мен ту при сое ди нен XSL-файл table.xsl. В этом фай ле хра нят ся ин-
ст рук ции транс фор ма ции до ку мен та.
<?xml version=»1.0» encoding=»windows-1251»?>
<xsl:stylesheet version=»1.0»
xmlns:xsl=»http://www.w3.org/1999/XSL/Transform»>
<xsl:template match=»/»>
<html>
<body>
<h2>Спи сок со труд ни ков </h2>
<xsl:value-of select=»fi rma/worker/id»/><br/>
<xsl:value-of select=»fi rma/worker/name»/><br/>
<xsl:value-of select=»fi rma/worker/pay»/><br/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Ре зуль тат пре об ра зо ва ния до ку мен та по ка зан на рис. 2.9.
Рис. 2.9. Транс фор ма ция до ку мен та
Как вид но из ри сун ка, сфор ми ро ван HTML-до ку мент, ко то рый со держит ин фор ма цию из пер во го бло ка дан ных, от ме чен ных те гом worker. Из
ри сун ка вид но так же, что нет све де ний об от де ле, от сут ст ву ют ком мен та рии
к из вле чен ной ин фор ма ции.
Про смот реть со дер жа ние всех уз лов до ку мен та мож но с по мо щью те га:
<xsl:for-each select=»path»>
</xsl:for-each>,
45

где path – путь к уз лу, со дер жи мое ко то ро го нуж но вы вес ти для все го до кумен та. Внут ри рас по ла га ют ся те ги для из вле че ния ин фор ма ции из до чер них
уз лов. Дан ный тег пред став ля ет со бой цикл пе ре бо ра со дер жа ния уз ла, к кото ро му ука зан путь.
Что бы из влечь зна че ние ат ри бу ты те га, нуж но ука зать к не му путь и снаб-
дить спе ци аль ным сим во лом @ (ссыл кой на ат ри бут).
Но вый ва ри ант XSL-до ку мен та при мет вид:
<?xml version=»1.0» encoding=»windows-1251»?>
<xsl:stylesheet version=»1.0»
xmlns:xsl=»http://www.w3.org/1999/XSL/Transform»>
<xsl:template match=»/»>
<html>
<body>
<h2>Спи сок со труд ни ков </h2>
<xsl:for-each select=»fi rma/worker»>
От дел:
<xsl:value-of select=»id/@dept»/><br/>
Лич ный но мер:
<xsl:value-of select=»id»/><br/>
Фа ми лия:
<xsl:value-of select=»name»/><br/>
Зарп пла та у.е:
<xsl:value-of select=»pay»/><br/>
<hr/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Ре зуль тат пре об ра зо ва ния по ка зан на рис. 2.10. Из ри сун ка вид но, что из
до ку мен та из вле че на вся ин фор ма ция, ко то рая в нем со дер жит ся.
Тех но ло гия ис поль зо ва ния транс фор ма ции до ку мен тов по зво ля ет выпол нить ряд спе ци аль ных дей ст вий над со дер жа ни ем XML-до ку мен та.
К ним от но сят ся:
от бор ин фор ма ции по ус ло вию;•
46

мно же ст вен ный вы бор ин фор ма ции;•
сор ти ров ка;•
ис поль зо ва ние шаб ло нов.•
От бор ин фор ма ции по ус ло вию вы пол ня ет ся с по мо щью те га:
<xsl:if test=”ус ло вие от бо ра”>
со дер жа ние
</xsl:if>
Рис. 2.10. Вы вод ин фор ма ции о слу жа щих
Со дер жа ние те га об ра ба ты ва ет ся, ес ли вы пол не но ус ло вие. На при мер,
на бор те гов:
<xsl:if test=”id/@dept=’бухгалтерия’”>
От дел:
<xsl:value-of select=»id/@dept»/><br/>
Лич ный но мер:
<xsl:value-of select=»id»/><br/>
Фа ми лия:
<xsl:value-of select=»name»/><br/>
Зарп пла та у.е:
47

<xsl:value-of select=»pay»/><br/>
<hr/>
</xsl:if>
Вы во дит ин фор ма цию о слу жа щих бух гал те рии.
Для се лек тор но го от бо ра ин фор ма ции ис поль зу ют те ги:
<xsl:choose></xsl:choose>
<xsl:when test=»ус ло вие»> </xsl:when>
Во вто рой тег вкла ды ва ет ся пер вый. До пол ни тель но мо жет быть ис пользо ван тег
пол ня ет ся толь ко в том слу чае, ес ли не най де ны со от вет ст вия в се лек то рах.
При мер. От бор со труд ни ков с лич ны ми но ме ра ми 100 и 500.
<xsl:otherwise></xsl:otherwise>. Его со дер жа ние вы-
<xsl:choose>
<xsl:when test=»id='100'»>
Фамилия:
<xsl:value-of select=»name»/><br/>
<hr/>
</xsl:when>
<xsl:when test=»id='500'»>
Фамилия:
<xsl:value-of select=»name»/><br/>
<hr/>
</xsl:when>
<xsl:otherwise>
<p></p><hr/>
</xsl:otherwise>
Ес ли слу жа щий не об на ру жен, вы во дит ся пус тая стро ка и раз де ли тельная ли ния.
От бор по ус ло вию и се лек тив ный вы бор долж ны про из во дить ся внут ри
sl:for-each.
те га x
При вы во де со дер жа ния XML его мож но от сор ти ро вать-упо ря до чить
с по мо щью те га
xsl:sort. Тег дол жен от ве чать сле дую ще му фор ма ту:
<xsl:sort select=”тег” order=”type”/>
48

Здесь тег – на име но ва ние те га, по со дер жа нию ко то ро го вы пол ня ет ся
сор ти ров ка. Зна че ние
type оп ре де ля ет тип сор ти ров ки:
ascending• – по воз рас та нию, ис поль зу ет ся по умол ча нию;
descending• – по убы ва нию.
Этот тег дол жен быть пер вым внут ри те га
При мер. Сор ти ров ка со дер жа ния по убы ва нию лич но го но ме ра со-
труд ни ка.
xsl:for-each.
<xsl:for-each select=»fi rma/worker»>
<xsl:sort select=»id» order=»descending»/>
Лич ный но мер:
<xsl:value-of select=»id»/><br/>
Фа ми лия:
<xsl:value-of select=»name»/><br/>
<hr/>
</xsl:for-each>
При ис поль зо ва нии сор ти ров ки мож но ис поль зо вать до пол ни тель ный
па ра метр
case-order для уче та ре ги ст ра сим во лов при сор ти ров ке:
lower-fi rst:• сор ти ров ка по строч ным бу к вам име ет боль ший при ори-
тет;
upper-fi rst:• сор ти ров ка по про пис ным бу к вам име ет боль ший при-
ори тет.
На при мер, сор ти ров ка фа ми лий с уче том ре ги ст ра:
<xsl:sort select=»name» case-order=»upper-fi rst»/>
Чи сло вые дан ные сор ти ру ют ся по умол ча нию не как чис ла, а как
стро ки сим во лов с ко да ми сим во лов цифр. С по мо щью па ра мет ра
data-type=”number” мож но ука зать, что стро ки с чис ла ми долж ны сор-
ти ро вать ся как чис ла:
<xsl:sort select=»id» data-type=»number»/>
В ре зуль та те бу дет вы пол не на сор ти ров ка по чи сло во му зна че нию лич но-
го но ме ра со труд ни ка.
При извлечении информации можно использовать шаблоны.
Шаб лон за да ет ся один раз и мо жет быть ис поль зо ван при раз ра бот ке
XSL-до ку мен та. За да ет ся шаб лон те га ми:
<xsl:template match=”имя”>
со дер жа ние
</xsl:template>
49

Об ра ще ние к шаб ло ну вы пол ня ет ся с по мо щью те га:
<xsl:apply-templates select=»path»/>
Здесь имя – это на име но ва ние те га до ку мен та XML, от ку да бу дет про-
из ве де но из вле че ние ин фор ма ции. Зна че ние
к те гу, ука зан но му в имя.
При мер. Соз да дим шаб лон для из вле че ния ин фор ма ции из те га work-
er и ис поль зу ем его в XSL таб ли це.
path за да ет путь в до ку мен те
<xsl:template match=»worker»>
От дел:
<xsl:value-of select=»id/@dept»/><br/>
Лич ный но мер:
<xsl:value-of select=»id»/><br/>
Фа ми лия:
<xsl:value-of select=»name»/><br/>
Оп ла та у.е:
<xsl:value-of select=»pay»/><br/>
<hr/>
</xsl:template>
<xsl:template match=»/»>
<html>
<body>
<h2>Спи сок со труд ни ков </h2>
<xsl:apply-templates select=»fi rma/worker»/>
</body>
</html>
</xsl:template>
Ре зуль тат вы во да бу дет та ким же, как при ис поль зо ва нии те га
xsl:for-each. Шаб ло ны мно го крат но при ме ня ют ся при вы во де ин фор-
ма ции из до ку мен та XML.
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
