Misingi ya XML. Ubadilishaji wa XML-HTML. Kwa kutumia JavaScript. Matoleo ya XML

Ili kubadilisha kiotomatiki maudhui ya faili za xml kuwa aina/umbizo linaloweza kusomeka na binadamu (html, rtf, pdf, txt, vrml, svg, java, n.k.), unapaswa kutumia XSLT badala ya kujaribu kutumia CSS.

Hasara za CSS:
1. CSS haiwezi kubadilisha mpangilio wa vipengele katika hati ya xml. Ikiwa unataka kupanga baadhi ya vipengele au kuvichuja kwa baadhi ya mali, basi CSS haitakusaidia kwa hili.
2. CSS haifanyi hesabu. Ikiwa unataka kuhesabu na kuonyesha thamani (kwa mfano, sum maadili ya nambari vipengele vyote kwenye hati ya xml), CSS haitakufaa.
3. CSS haiwezi kuunganisha hati. Ikiwa unataka kuchanganya hati kadhaa za XML na maagizo ya ununuzi na uchapishe muhtasari wa bidhaa zote zilizoagizwa, basi CSS haitakusaidia tena.

Mfano mdogo wa kutumia XSL

Kuna faili za xml za mipangilio ya programu-jalizi:


Programu-jalizi hudhibiti mipangilio ya tabaka za kuchora za AutoCAD. Ifuatayo ni jedwali linaloorodhesha vitu vinavyoangaliwa.

Kuangalia jina la safu
kweli
Kuangalia jina la safu kwa kufuata sheria ya kumtaja

Kuangalia Rangi ya Tabaka
kweli
Kuangalia kwamba safu imepewa rangi kutoka kwa palette ya "Index Color".

Angalia aina ya mstari
kweli
Kuangalia kuwa tabaka zimepewa aina za mstari tu kutoka kwa seti fulani

Kuangalia unene wa mstari
kweli
Kuangalia kuwa tabaka zimepewa uzani wa mstari tu kutoka kwa seti fulani

Inatafuta dokezo
kweli
Kila safu lazima iwe na maandishi yanayofafanua madhumuni yake

Seti ya safu isiyohamishika
uongo
Je, watumiaji wanapaswa kupigwa marufuku kuunda tabaka za ziada, kulingana na sheria zilizowekwa katika Kiwango?

Programu-jalizi lazima isome mipangilio kutoka kwake na ifanye kazi kwa mujibu wao. Wakati huo huo, lazima kuwe na nyaraka ambazo mtumiaji anaweza kusoma na kuelewa. Kwa kuongezea, nyenzo zilizowasilishwa kwenye hati lazima zilingane na mipangilio iliyowekwa wakati huu. Ili usikumbuke kwamba baada ya kurekebisha mipangilio, unahitaji kwenda na kuhariri nyaraka, unaweza kuwasilisha yote haya kwa fomu ya faili moja ya xml. Programu-jalizi itasoma mipangilio kutoka kwayo, na mtumiaji ataifungua kwenye kivinjari na... kuiona katika umbo la "binadamu"... Ili kufanya hivyo, unda faili styleSheet.xsl na maudhui yafuatayo:

Mipangilio ya programu-jalizi

Kumbuka Maana ya Parameta

Sasa, ikiwa mtumiaji atafungua faili yetu ya xml kwenye kivinjari, ataona haichanganyiki (kutoka kwa maoni yake), maandishi ya xml yasiyofaa, lakini hii:

KATIKA katika mfano huu Sikuonyesha uteuzi, kuchagua, kuchuja, aina mbalimbali za uendeshaji na mahesabu (hazikuhitajika hapa), lakini ikiwa ni lazima, yote haya yanaweza kufanywa kwa kutumia XSLT.

Kusudi la somo

Utangulizi wa teknolojia ya XML. Chunguza uwezekano wa kuwakilisha hati za XML katika HTML. Matumizi Hati za JavaScript kwa kusogeza kwenye jedwali la XML na kupanga utafutaji wa data kwa masharti. Usomaji unaopendekezwa.

Maelezo mafupi ya kinadharia

Teknolojia ya XML (eXtensible Lugha ya Alama) iliundwa mwishoni mwa miaka ya 90 ya karne iliyopita. Faida kuu za maandishi ya XML:

□ ina muundo wa hifadhidata, unaoweza kufikiwa na kompyuta na wanadamu;

□ kuchakatwa kwa njia rahisi lugha za kisasa kupanga programu;

□ kutafsiriwa kwa urahisi katika HTML.

Fikiria mfano ufuatao wa hifadhidata ya maandishi iliyoandikwa katika XML:

Wanaume watatu kwenye mashua

Jerom-K-Jerom

12000

Notre Domme de Paris

V.Hugo

15000

Vita na Amani

L. Tolstoy

16500

Angelika - bibi wa vizuka A na S. Gallen

9000

Huu ni mfano wa muundo uliotungwa kwa usahihi Hati ya XML, ambazo vipengele vyake ni tagi , , , ,

Vipengele katika maandishi vimepangwa kama mti na kipengele cha kichwa. Kila kipengele kina kipengele cha kufunga kinachohusishwa nayo. Upeo wa kila kipengele ni mdogo na vipengele vya kufungua na kufunga. Hairuhusiwi kuvuka upeo wa vipengele, i.e. Maeneo hayo yamewekwa ndani ya moja na mengine au hayaingiliani kabisa. Kipengele ambacho upeo wake una upeo wa vipengele vingine vyote huitwa kipengele cha mizizi. Hati ya XML inaweza kuzingatiwa kama hifadhidata ya maandishi. Thamani ya kipengele ni taarifa iliyowekwa kati ya lebo zinazofafanua kipengele hiki. Kwa hiyo, thamani ya kipengele cha kwanza ni kamba

Wanaume watatu kwenye mashua.

Andika maandishi haya katika kihariri chochote na uihifadhi kama rahisi faili ya maandishi na kiendelezi cha xml - kwa mfano, taja faili hii textbd.xml. Unaweza kutazama faili hii kwa kivinjari Internet Explorer jinsi ulivyotazama faili za HTML. Ikiwa kuna hitilafu, mkalimani wa XML ataonyesha maelezo ya kina kuhusu eneo na kiini cha kosa.

Sasa tutaonyesha jinsi ya kubadilisha pato hili kuwa jedwali. fomu ya HTML, ambayo inafanywa kwa kutumia HTML. Wacha tuunde inayofuata faili ya HTML(Orodha 2.12).

Kuorodhesha 2.12. Hati ya HTML ya kuonyesha Jedwali la XML

Jina la Kitabu

Mwandishi

bei

Hebu tuhifadhi faili hii ya HTML kama textbd.html. Sasa hebu tuifungue na kivinjari. Matokeo yatakuwa kama hii (Mchoro 2.9).

Mchele. 2.9. Inaonyesha hati ya XML katika hati ya HTML

Ili kuunganisha faili ya XML iliyoundwa hapo awali na kuiunganisha kwenye jedwali, vitambulisho hutumiwa:

Ili kuonyesha data kwenye jedwali, vitambulisho vya seli hutumiwa katika fomu ifuatayo:

Lebo hutumika kama chombo. Kigezo cha DATAFLD kina thamani ya kipengele cha XML cha kuonyeshwa.

Wakati wa kufanya kazi na hifadhidata, moja ya maswala kuu ni kupata habari inayohitajika. Katika kazi hii, tutafanya utafutaji kama huo kwa kutumia zana za JavaScript. Kwa kuwa hifadhidata inaweza kuwa kubwa kabisa, inaonyeshwa kabisa kwenye jedwali Hati ya HTML isiyofaa sana. Kwa hiyo, hatutaonyesha meza nzima, lakini, sema, rekodi mbili tu. Kwa kuongeza, tutaongeza vifungo ili kusonga kupitia hifadhidata. Ili kufanya hivyo, hebu tubadilishe hati yetu ya HTML kama ifuatavyo (Orodha 2.13).

Kuorodhesha2.13. Hati ya HTML iliyorekebishwa ili kuonyesha jedwali la XML

Somo letu la kwanza katika teknolojia ya xml

Jina la Kitabu

Mwandishi

bei

>

<

Neno > hutumika kuchora mshale wa kulia, neno &it hutumika kuchora mshale wa kushoto. Wakati huo huo, tunaonyesha kuwa rekodi mbili tu zinahitajika kuonyeshwa kwenye jedwali:

Sasa hebu tuunde maudhui ya kazi kwa tovuti yetu. Maana yake itakuwa kwamba tutaingiza jina la kitabu kwa ukamilifu wake au baadhi ya vipande vyake, na wakati kifungo kitakapobonyezwa, mfumo unapaswa kuonyesha maelezo mengine ya kitabu: mwandishi na bei, au ripoti kwamba kitabu. haikupatikana. Sasa unahitaji kutumia JavaScript. Kwa kweli, amri chache tu zinahitajika.

□ getElementByTagName("title").item(i).maandishi;

Amri hii inarudisha thamani ya kipengele kutoka kwa faili ya XML ambayo ni kipengele cha i-th katika mpangilio wa kuorodhesha vipengele hivi.

□ getElementsByTagName("title").length;

Amri hii inarejesha jumla ya idadi ya vipengele kutoka kwa hati ya XM L.

□ String.indexOf(stringl);

Amri hii inarudisha nafasi ambayo stringi imejumuishwa kamba ya kamba au -i ikiwa hakuna matukio.

Sasa hebu tuonyeshe nambari iliyopanuliwa ya HTML ya kazi hii (Kuorodhesha 2.14).

Kuorodhesha2.14. Hati ya HTML Iliyoimarishwa ili Kuonyesha Jedwali la XML

kazi showelement()

// Kuunganisha hati ya XML:

var odoc=new ActiveXObject("Microsoft.XMLDOM");

odoc.async=uongo; // Sitisha programu,

// hadi upakiaji ukamilike odoc.load("textbd.xml"); // Pakia hati ya XML kwenye kumbukumbu var stringl=document.myform.mytext.value; z=odoc.getElementsByTagName("title").length;// Kupata

// urefu wa kipengele // na lebo //

kwa(i=0;i