XML valoda arvien vairāk tiek izmantota, lai uzglabātu informāciju, dalītu to starp lietojumprogrammām un tīmekļa mezgliem. Daudzās lietojumprogrammās šī valoda tiek izmantota kā datu pamata uzglabāšana citās - lai eksportētu un importētu XML datus. No tā izriet, ka izstrādātājiem ir pienācis laiks domāt par to, kā izmantot XML datus savās lietojumprogrammās.
Šajā rakstā mēs apskatīsim XML dokuments Objekta modelis (DOM) un tās īstenošana Microsoft - Microsoft XML DOM.
XML DOM ir objekta modelis, kas nodrošina izstrādātājam objektus lejupielādēt un apstrādāt XML failus. Objekta modelis sastāv no šādiem galvenajiem objektiem: xmldomdocument, xmldomnodelists, xmldomnode, xmldomnomnodeMap un xmldomparseError. Katrs no šiem objektiem (izņemot XmldomparseError) satur īpašības un metodes, lai iegūtu informāciju par objektu, manipulētu ar objekta vērtībām un struktūru, kā arī pārvietojieties pa XML dokumentu struktūru.
Apsveriet XML DOM galvenos objektus un dodiet vairākus to izmantošanas piemērus Borland Delphi.
Izmantojot XML DOM Borland Delphi
Lai izmantotu Microsoft XML DOM DELPHI lietojumprogrammās, projektam ir jāpievieno atbilstošā tipa bibliotēka. Lai to izdarītu, mēs izpildām projektu | Importēšanas veida bibliotēka un dialoglodziņā Importēt tipa bibliotēku izvēlieties Microsoft XML versiju 2.0 bibliotēku (versija 2.0), kas parasti atrodas Windows Sistēmā \\ Sxmml.dll failu
Nospiežot pogu Create Unit, tiks izveidots MSXML_TLB interfeisa modulis, kas ļaus mums izmantot XML DOM objektus: domdocument, Xmldocument, XMLHTTTPREQUEST un vairāki citi, kas ieviesti MSXML.dll bibliotēkā. Saite uz MSXML_TLB moduli ir jāiekļauj lietojumu sarakstā.
XML DOM ierīce
Dokumenta objekta modelis ir XML dokuments koka konstrukcijas veidā, kas sastāv no filiālēm. XML DOM programmatūras saskarnes ļauj lietojumprogrammām orientēties dokumentu koku un manipulēt ar tās filiālēm. Katrai filiālei var būt īpašs veids (Domnodetype), saskaņā ar kuru tiek noteikti vecāki un meitasuzņēmumi. Vairumā XML dokumentu jūs varat atrast elementu, atribūtu un teksta filiāles. Atribūti (atribūts) ir īpašs filiāles veids un nav meitas nozares. Atribūtu pārvaldība izmanto Īpašas metodesar XML Dom objektiem.
Papildus Ieteicamo World Wide Web konsorcija (W3C) saskarņu ieviešanai Microsoft XML DOM satur metodes, kas atbalsta XSL, XSL modeļus, Namespaces un datu tipus. Piemēram, Selectnodes metode ļauj izmantot XSL veidnes sintaksi (XSL rakstu sintaksi), lai meklētu filiāles konkrētā kontekstā, un TransformNode metode atbalsta XSL lietošanu, lai veiktu transformācijas.
Test XML dokuments
Kā piemēru XML dokumenta, ņemiet katalogu mūzikas CD-ROM, kurai ir šāda struktūra:
Tagad mēs esam gatavi sākt apsvērt objekta modeli XML DOM, kas sāksies ar xmldomdocument objektu.
XML dokuments - Xmldomdocument objekts
Darbs ar XML dokumentu sākas ar tās lejupielādi. Lai to izdarītu, mēs izmantojam slodzes metodi, kurai ir tikai viens parametrs, norādot lejupielādētā dokumenta URL. Lejupielādējot failus no vietējā diska, ir norādīts tikai pilnā faila nosaukums (fails: /// protokols šajā gadījumā var izlaist). Ja XML dokuments tiek saglabāts kā virkne, LoadXML metode jāizmanto, lai lejupielādētu šādu dokumentu.
Lai kontrolētu metodi, lejupielādējot dokumentu (sinhronā vai asinhrono), tiek izmantots async īpašums. Pēc noklusējuma šis īpašums ir taisnība, norādot, ka dokuments ir ielādēts asinhroni, un kontrole tiek atgriezta pieteikumā, līdz dokuments ir pilnībā ielādēts. Pretējā gadījumā dokuments tiek ielādēts sinhronā, un tad jums ir jāpārbauda Readystate īpašuma vērtība, lai noskaidrotu, ielādētu dokumentu vai nē. Varat arī izveidot iepriekšējustathstechange notikumu apstrādātāju, kas saņems kontroli, mainot gatavās īpašuma vērtību.
Zemāk tiek parādīts, kā lejupielādēt XML dokumentu, izmantojot slodzes metodi:
Lietotāji ... MSXML_TLB ... Procedūra Tform.Button1Click (Sender: Togect); Var xmldoc: ixmldomdocument; Sākt xmldoc: \u003d codomdocument.Create; Xmldoc.async: \u003d FALSE; Xmldoc.load ("C: \\ Dati.xml"); // // šeit ir kods, kas manipulē // XML dokuments un tās filiāles // xmldoc: \u003d nulle; beigas;
Pēc tam, kad dokuments ir ielādēts, mēs varam atsaukties uz tās īpašībām. Tādējādi Numpename īpašums satur #dokumentu vērtību, tad nodotipestring īpašums ir dokumentu vērtība, URL īpašums ir fails: // c: /data/data.xml vērtība.
Apstrāde ir kļūda
Īpašas intereses ir īpašības, kas saistītas ar dokumenta apstrādi, kad tas ir ielādēts. Tādējādi, Programmatūras īpašums atgriež XmldomparseErrorror objektu, kas satur kļūdas informāciju, kas notika apstrādes procesā.
Lai uzrakstītu kļūdas apstrādātāju, varat pievienot šādu kodu:
Var xmlerror: ixmldomparseError; ... xmldoc.load ('C: \\ Dati.xml'); XMLError: \u003d xmldoc.PSEreRor; Ja xmlerror.Errorcode.<> 0 Tad // // Šeit mēs apstrādājam kļūdu // citur memo1.lines.add (xmldoc.xml); ... xmldoc: \u003d nulle;
Lai noskaidrotu, kura informācija tiek atgriezta kļūdas gadījumā, mainiet šādu direktoriju vienumu:
noslēguma elementa noņemšana
Tagad uzrakstiet kodu, kas atdod xmldomparseErrorror objekta īpašības:
XMLError: \u003d xmldoc.PSEreRor; Ja xmlerror.Errorcode.<> 0 tad ar XMLError, Memo1.Lines sākas pievienot ("Fails:" + URL); Pievienot ("Kods:" + Inttostr (ErrorCode)); Pievienot ("kļūda:" + iemesls); Pievienot ("Teksts:" + SRRTEXT); Pievienot ("rinda" + Inttostr (līnija)); Pievienot ("Amats:" + Inttostr (linePos)); Galu galā memo1.lines.add (xmldoc.xml); Beigas;
un izpildiet mūsu pieteikumu. Tā rezultātā mēs iegūstam šādu kļūdu.
Kā redzams no iepriekš minētā piemēra, XMDomparseError objekta nosūtītā informācija ir pietiekama, lai lokalizētu kļūdu un saprastu tā notikumu iemeslu.
Tagad atjaunojiet aizvēršanas vienumu
Piekļuve dokumentu kokam
Lai piekļūtu dokumentu koku, jūs varat saņemt saknes elementu un pēc tam iet cauri tās meitasuzņēmumiem vai atrast kādu konkrētu filiāli. Pirmajā gadījumā mēs saņemam saknes elementu, izmantojot dokumentu izstrādes īpašumu, kas atgriež Xmldomnode tipa objektu. Turpmāk tiek parādīts, kā izmantot dokumentu izstrādes īpašumu, lai iegūtu katra bērna elementa saturu:
Var mezgls: ixmldomnode; Sakne: ixmldomelement; I: vesels skaitlis; ... sakne: \u003d xmldoc.documentelement; Par i: \u003d 0 uz root.childnodes.length-1 do sāciet mezglu: \u003d root.childnodes.Item [i]; Memo1.lines.add (node.text); Beigas;
Mūsu XML dokumentam mēs saņemam šādu tekstu.
Ja mēs esam ieinteresēti kāda konkrēta filiāles vai filiāles līmenī, kas ir zemāks par pirmo meitasuzņēmumu, mēs varam izmantot vai nu Nodefromid metodi vai Xmldomdocument objekta GetelementByTagname metodi.
Nodefromid metode prasa precizēt unikālu identifikatoru, kas definēts XML shēmā vai dokumenta tipa definīcijā (DTD) un atgriež filiāli ar šo identifikatoru.
GetelementByTagname metode prasa norādi par virkni ar konkrētu elementu (tag) un atgriež visas filiāles ar šo vienumu. Zemāk tiek parādīts, kā izmantot šo metodi, lai atrastu visus izpildītājus mūsu CD-ROM direktorijā:
Mezgli: ixmldomnodelists; Mezgls: ixmldomnode; ... mezgli: \u003d xmldoc.getElementsBytagname ("mākslinieks"); Par i: \u003d 0 uz mezglu.Length-1 sāciet mezglu: \u003d mezgli.Item [i]; Memo1.lines.add (node.text); Beigas;
Mūsu XML dokumentam mēs saņemsim šādu tekstu.
Ņemiet vērā, ka XMLDomNode Selectnodes metode nodrošina elastīgāku veidu, kā piekļūt dokumenta filiālēm. Bet par to ir nedaudz zemāks.
Dokumentu filiāle - XMLDomNode objekts
XMLDomNode objekts ir dokumentu filiāle. Mēs jau esam saskārušies ar šo objektu, kad tika iegūts dokumenta saknes elements:
Sakne: \u003d xmldoc.doc tableelement;
Lai iegūtu informāciju par XML dokumenta filiāli, varat izmantot XMLDomNode objekta īpašības (1. tabula).
Lai piekļūtu filiālē glabātos datus, parasti izmanto nodevu īpašumu (pieejams atribūtiem, teksta filiālēm, komentāriem, apstrādes instrukcijām un CDATA sadaļām) vai teksta īpašumu, kas atgriež teksta saturu filiāles vai nodetypedvalue īpašumu. Tomēr pēdējo var izmantot tikai filiālēm ar drukātiem elementiem.
Pārvietojas uz dokumentu koku
XMLDomNode objekts nodrošina dažādus veidus, kā pārvietoties caur dokumentu koku. Piemēram, piekļūt mātes filiālei, tiek izmantots vecāku īpašums, piekļuve bērnu filiālēm tiek veikta, izmantojot bērna kododes īpašības (Xmlchild tipa), Firstchild un Lastchild (tips xmldomnode) utt. Īpašnieka īpašums atgriež Xmldocument objektu, kas identificē XML dokumentu pati. Iepriekš minētās īpašības padara to viegli pārvietoties caur dokumentu koku.
Tagad es pārvarēšu visas XML dokumenta filiāles:
Sakne: \u003d xmldoc.doc tableelement; Par i: \u003d 0 uz root.childnodes.length-1 do sāciet mezglu: \u003d root.childnodes.Item [i]; Ja node.haschildnodes tad getchilds (mezgls, 0); Beigas;
Kā norādīts iepriekš, SELECTNODES OBJECT XMLDOMNODE nodrošina elastīgāku veidu, kā piekļūt dokumenta filiālēm. Turklāt ir izvēlēta metode, kas atgriež tikai dokumenta pirmo filiāli. Abas šīs metodes ļauj norādīt XSL veidnes, lai meklētu filiāles.
Apsveriet procesu, izmantojot Selectnodes metodi, lai iegūtu visas filiāles, kurām ir CD filiāle un inflācija.
Sakne: \u003d xmldoc.doc tableelement; Mezgli: \u003d root.Selectnodes ("CD / cena");
Mezglu kolekcija tiks ievietota visas Switter Cena CD filiāles. XSL veidņu diskusija nedaudz vēlāk atgriezīsies.
Manipulācija ar meitas filiālēm
Par meitasuzņēmumu manipulācijām, mēs varam izmantot metodes XMLDomNode objektu (2. tabula).
Lai pilnībā izdzēstu pirmo diska ierakstu, jums ir nepieciešams veikt šādu kodu:
Var xmldoc: ixmldomdocument; Sakne: ixmldomnode; Mezgls: ixmldomnode; Xmldoc: \u003d codomdocument.Create; Xmldoc.async: \u003d FALSE; Xmldoc.load ("C: \\ Dati.xml"); // Iegūstiet sakņu elementa sakni: \u003d XMLDOC.doc tablabumentelement; Mezgls: \u003d sakne; // noņemt pirmo meitasuzņēmumu node.removechild (node.firstchild);
Lūdzu, ņemiet vērā, ka šajā piemērā mēs noņemam pirmo meitasuzņēmumu. Kā noņemt pirmā meitasuzņēmuma pirmo elementu, ir parādīts zemāk:
Var xmldoc: ixmldomdocument; Sakne: ixmldomnode; Mezgls: ixmldomnode; Xmldoc: \u003d codomdocument.Create; Xmldoc.async: \u003d FALSE; Xmldoc.load ("C: \\ Dati.xml"); // Iegūstiet sakņu elementa sakni: \u003d XMLDOC.doc tablabumentelement; // un pirmais meitas mezgls: \u003d root.firstchild; // noņemt pirmo meitasuzņēmumu node.removechild (node.firstchild);
Iepriekš minētajā piemērā mēs noņēmām pirmo filiāli.
Tagad pievienojiet jaunu filiāli. Zemāk ir kods, kas parāda, kā pievienot jaunu mūzikas CD-ROM ierakstu:
Var newnode: ixmldomnode; Bērns: ixmldomnode; ... // Izveidojiet jaunu filiāli -
Iepriekš minētais kods parāda šādu darbību secību, lai pievienotu jaunu filiāli:
- Jaunas filiāles izveide, izmantojot CreateNode:
- vienuma izveide, izmantojot Createnermode metodi;
- pievienojot elementu filiālei ar 6. papildpakalpojumu metodi;
- noteikt elementa vērtību, izmantojot teksta īpašumu;
- ... atkārtojiet visus vienumus.
- Pievienojot jaunu filiāli dokumentam ar papildinājumu.
Atgādināt, ka apkarošanas metode pievieno filiāli koka beigās. Lai pievienotu filiāli konkrētai koku vietai, jums ir jāizmanto InsertBeore metode.
Nozaru komplekts - XMLDomnodelist objekts
Xmlnodelist objekts satur filiāles sarakstu, kas var tikt būvētas, izmantojot Selectnodes vai GetElementByTagname metodes, un tiek iegūta arī no bērna kopšanas īpašuma.
Mēs jau esam izskatījuši šo objektu izmantošanu, kas norādīts sadaļā "Pārvietošanās uz dokumentu koku". Šeit mēs arī sniedzam dažus teorētiskus komentārus.
Sarakstā filiāļu skaitu var iegūt kā garuma īpašuma vērtību. Filiālēm ir indeksi no 0 līdz garumam - 1, un katra atsevišķa filiāle ir pieejama, izmantojot vienumu masīva elementu ar atbilstošo indeksu.
Pārvietošanās sarakstā filiāles var veikt arī, izmantojot nākamonode metodi, kas atgriežas nākamo filiāli sarakstā, vai nulle, ja pašreizējā filiāle ir pēdējā. Lai atgrieztos saraksta augšdaļā, jums vajadzētu zvanīt atiestatīšanas metodei.
Dokumentu izveide un taupīšana
Tātad, mēs skatījāmies, kā jūs varat pievienot filiāles un elementus esošajiem XML dokumentiem. Tagad izveidojiet XML dokumentu "lidojumā". Pirmkārt, mēs jums atgādināsim, ka dokumentu var ielādēt ne tikai no URL, bet arī no parastās virknes. Tālāk redzams, kā izveidot saknes elementu, ko pēc tam var izmantot, lai dinamiski veidotu atlikušos elementus (ko mēs jau esam apsvēruši sadaļā "Meitas pārvaldes manipulācijas"):
Var xmldoc: ixmldomdocument; Sakne: ixmldomnode; Mezgls: ixmldomnode; S: ligzdošana; ... S: \u003d '
Pēc XML dokumenta veidošanas saglabājiet to failā, izmantojot Saglabāt metodi. Piemēram:
Xmldoc.save ("C: dati \\ tEwcd.xml");
Papildus ietaupīt failā, Saglabāt metode ļauj saglabāt XML dokumentu jaunā XMLDomdocument objektā. Šajā gadījumā dokuments ir pilnīga apstrāde, un, kā rezultātā, pārbaudot tās struktūru un sintaksi. Tālāk redzams, kā saglabāt dokumentu citā objektā:
Procedūra tform.button2click (sūtītājs: togect); Var xmldoc2: ixmldomdocument; Sākt xmldoc2: \u003d codomdocument.Create; Xmldoc.save (xmldoc2); Memo2.lines.Add (xmldoc2.xml); ... xmldoc2: \u003d nulle; beigas;
Visbeidzot, mēs atzīmējam, ka taupīšanas metode arī ļauj saglabāt XML dokumentu citiem COM objektiem, kas atbalsta Istream, isetstream vai ipciststreaminit saskarnes.
Izmantojot XSL veidnes
Apspriežot XMLDomNode Object Selectnodes metodi, mēs minējām, ka tas nodrošina elastīgāku veidu, kā piekļūt dokumenta filiālēm. Elastīgums ir tas, ka kā kritērijs, lai izvēlētos filiāles, varat norādīt XSL veidni. Šādas veidnes nodrošina spēcīgu mehānismu, lai meklētu informāciju XML dokumentos. Piemēram, lai mūsu direktorijā iegūtu sarakstu ar visiem mūzikas CD-ROM nosaukumiem, jūs varat sekot šādam vaicājumam:
Lai noskaidrotu, vai diski, kuru izpildītāji tiek izlaisti Amerikas Savienotajās Valstīs, pieprasījums ir veidots šādi:
Mezgli: \u003d root.Selectnodes ("CD / mākslinieks");
Tālāk redzams, kā atrast pirmo disku direktorijā:
Mezgli: \u003d root.Selectnodes ("CD / nosaukums");
un pēdējais:
Mezgli: \u003d root.Selectnodes ("CD / nosaukums");
Lai atrastu Bob Dilan diskus, varat veikt šādu vaicājumu:
Mezgli: \u003d root.Selectnodes ("CD [$ jebkurš $ ARST \u003d" BOB DYLAN "] / Nosaukums");
un, lai iegūtu sarakstu diski, kas izlaisti pēc 1985. gada, mēs veicam šādu vaicājumu:
Mezgli: \u003d root.Selectnodes ("CD / nosaukums");
Detalizētāka diskusija par XSL sintaksi prasa atsevišķu publikāciju. Intrigu lasītājiem un virzīt turpmākus pētījumus, es sniegšu tikai vienu nelielu piemēru par iespējamo XSL iespējamo izmantošanu. Pieņemsim, ka mums ir jāpārvērš mūsu direktorija parastajā HTML tabulā. Izmantojot tradicionālos veidus, mums ir jānovērš visi koku zari un katram vienumam, kas iegūts, lai izveidotu atbilstošās tagus
Izmantojot XSL, mēs vienkārši izveidojam veidni (vai stila tabulu), kurā mēs norādām, ko un kā konvertēt. Tad mēs uzliksim šo veidni mūsu katalogam - un gatavs: pirms mums XSL veidnes tekstu, kas pārveido direktoriju tabulā (sarakstā 2).
XSL veidnes pārklāšanai mūsu katalogā izskatās šādi:
Procedūra tform.button2click (sūtītājs: togect); Var xsldoc: ixmldomdocument; Sākt xsldoc: \u003d codomdocument.Create; Xsldoc.load ('C: \\ Dati.xsl'); Memo2.Text: \u003d xmldoc.transformnode (xsldoc); Xsldoc: \u003d nulle; beigas;
Pabeidzot mūsu diskusiju par XSL, ir jāsaka, ka šobrīd šī valoda tiek aktīvi izmantota, lai pārveidotu starp dažādiem XML dokumentiem, kā arī formatēšanas dokumentiem.
Secinājums
Par diezgan saprotams iemesls, vienā rakstā nav iespējams apsvērt visus Microsoft XML Dom objektus un dot piemērus par to izmantošanu. Šeit mēs tikai pieskārās galvenajiem jautājumiem, izmantojot XML DOM lietojumprogrammās. Cilnē. 3 parāda visus objektus, kas ieviesti Microsoft XML DOM.
ComputerPress 12 "2000
Pasūtīt uzdevumus Delphi
Delphi ir otrā programmēšanas valoda, ar kuru studenti visbiežāk iepazīstas ar mācību procesu. Tas ir mācību objektu orientētas programmēšanas sākums. Es, kā students, izdarījis sev secinājumu, ka nav vieglāk metodes apgūt valodu, nevis uzrakstīt kalkulatoru par to. Pat ja jūs sapratīsiet divu skaitļu pievienošanas elementāro funkciju, tas jau ir daudz gaismas.
CODEGAEAR, DELPHI 7, Lācarus ir dažādi kompilatori, programmas, kas tiks pārskaitītas uz mašīnas kodu, ko rakstījis jūs, pārveidojot to Zoliki un vienu. Tās ir visas programmas programmu, nevis atsevišķu programmēšanas valodu izveidei. Šie kompilatori izmanto Objekta Pascal programmēšanas valodu, kas ir Delphi valodas pamatā, kas ir līdzīga sintaksei līdzīgi parastajam Pascal, bet ir funkcionāls ievērojami atšķirīgs.
Kas ir programmēšanas valodas sintakse?
Tas ir formāts dažādu operatoru rakstīšanai. Piemēram, Pascal "Par" ciklu ir šāds formāts: "N: \u003d 1 līdz K darīt" utt.
C + + programmēšanas valodā tas pats cikls ir nedaudz atšķirīgs: par (n \u003d 1; n mēs uzrakstām kalkulatoru
Tas dos jums saprast, kā objekti ar programmas kodu mijiedarbojas, kas ir "mainīgie", kā matemātiskās funkcijas darbojas. Visa programmēšana jebkurā gadījumā būs aprēķins. Spēle ir arī programma, kas pastāvīgi uzskata, ka kaut kas darbojas ar cipariem un ciparu funkcijām. Programmēšana ir nedalāma no matemātikas.
Mēs izmantojam, lai uzrakstītu Lācarus attīstības vidi. Tās funkcionalitāte nav tik bagāta kā, piemēram, CODEGEAR, bet tā ir bezmaksas piekļuve, un tā ir paredzēta, lai mācītos.
Atverot attīstības vidi, mēs redzam elementu formu un paneli. Šeit ir veidlapa.
Šeit ir elementu panelis.
Pirmā lieta, ko mēs darīsim, ir pievienot trīs priekšmetus, kas nepieciešami, lai īstenotu divu skaitļu pievienošanas funkciju. Mums ir nepieciešams: "Tedit" skaits trīs gabalos un "Tbutton". Turpmāk redzamajā attēlā tie ir parādīti bultiņu panelī. Noklikšķiniet uz tiem vienu reizi, un tad vienu reizi formā, un tie parādās uz tā.
Tie ir teksta lauki ieejai un regulārai pogai. Jūs sastopaties ar šiem elementiem, izmantojot gandrīz jebkuru Windows programmu. Paskaties.
Tagad tīriet šos uzrakstus. Noklikšķiniet uz cilnes Skats. Un noklikšķiniet uz "objektu inspektors. Šis logs parādīsies.
Noklikšķiniet uz vienreiz uz mūsu elementa "pogas" uz formas un nomainiet vērtības "parakstu" inspektora logā uz jebkuru citu. Piemēram, uz vārdu "OK". Noklikšķiniet uz Enter. Mēs redzam uz veidlapas, jo elements ir mainījis vārdu.
Vienkārši to dariet ar rediģēšanu, vienkārši nepārdēvējiet, bet mēs tos darīsim bez satura. Mēs tos izceļam un notīriet teksta vērtību inspektorā. Neaizmirstiet nospiest taustiņu Enter.
Saskaņā ar rezultātu mūsu veidlapa izskatās šādi.
Tagad, kad mūsu kalkulators nopelnījis, jums ir nepieciešams reģistrēt nepieciešamo programmatūras kodu mūsu pogas procedūrai. Noklikšķiniet uz pogas elementa divreiz un atveriet avota redaktoru.
Redzēt? Button1Click procedūra. Šī ir procedūra, kas ir atbildīga par to, kas notiek, kad mēs vienreiz noklikšķinām uz pogas. Un šādi jānotiek: programma ir nepieciešama trešajā rediģēt, lai mums summa skaitļu ieviesti pirmajās divās jomās. Mēs rakstām kodu.
Šādas vienkāršas 5 rindas koda mums ir nepieciešams rakstīt. Komentāri un paskaidrojumi ir redzami attēlā iepriekš. Pēc tam noklikšķiniet uz šīs pogas.
Mūsu projekta sastādīšana tiks apkopota. Tas tiks samontēts programmā. Mēs ievadiet numurus pirmajos divos laukos, noklikšķiniet uz pogas un iegūstiet summas vērtību.
Secinājums
Varat noklikšķināt uz pogas "File", tad "Saglabāt visu", izvēlieties mapi, lai saglabātu, un jums būs pilnvērtīga programma, kuru sākumu var veikt no darbvirsmas. Tagad mēģiniet izdomāt to par savu, ka jums ir nepieciešams pārrakstīt šajā kodā, lai programmu sadalītu ar diviem skaitļiem, nevis salocīti. Padoms. Jums ir jāmaina datu tips. Zemāk redzamajā videoklipā ir redzams līdzīgs piemērs, bet Delphi 7, nevis Lācars.
Daudzi Delphi programmētāji, saglabājot iestatījumus, ir saistīti, izmantojot Ini. Failus savā programmās. Šīs metodes izmantošana mazāk nopietnos projektos ir jāizvairās, jo tas ierobežo elastību, kas novērš turpmāku programmas paplašināšanu. Ir vērts teikt, ka šāda pieeja ir diezgan populāra, pateicoties tās lietošanai un iebūvētu līdzekļu klātbūtni attīstības vidē.
Tomēr ir strukturēta ideāla iespēja uzglabāt programmas iestatījumus Xml Faili. To priekšrocība ir tā, ka parametru skaits nedrīkst būt fiksēts. Lai labāk to saprastu, ņemiet vērā konkrētu piemēru.
Tiešsaistes programmā, noklikšķinot uz ierakstīšanas, parādās konteksta izvēlne, kas parāda punktu sarakstu. Šie vienumi ir komandas, kas savukārt tiek lejupielādētas no iestatījumu faila. Ja iestatījumi tika saglabāti Ini. Fails, programma varētu ietaupīt un ielādēt noteiktu skaitu komandu, piemēram, 10. vai 50. Tiklīdz jums ir nepieciešams svarīgāks, jums būs nepieciešams pārrakstīt kodu un, attiecīgi, atkārtoti apkopot to.
Pielietojot pieeju, izmantojot Xml Faili, mums būs iespēja lejupielādēt visus sadaļas parametrus dinamiski. Lai to visu, konfigurācijas fails kļūs elegants, bez pārmērīgas parametru skaitīšanas. Tomēr standarta rīki darbam ar Xml Delphi ir daudz trūkumu, tāpēc es iesaku izmantot standarta bibliotēku Msxml.. Parasti tā ir Windows ģimenes sistēmu noklusējuma daļa.
Savienošanai Msxml.Mums ir nepieciešams veidot saskarnes failu ar visu funkciju sarakstu, importējot to no COM servera. Kā importēt interfeisu nav pietiekami detalizēti raksti, es iesaku lejupielādēt failu Msxml2_tlb.pas. Jau ir gatavs lietošanai. Kad fails ir lejupielādēts, novietojiet to blakus jūsu projektam vai iemetiet Delphi Lib Lib mapi. Tādējādi visas izveidotās programmas varēs izmantot moduli. Msxml., Tas ir pietiekami, lai lietojumam pievienotu MSXML2_TLB.
Lai nodrošinātu skaidrību, apsveriet šādu piemēru šīs bibliotēkas piemērošanas:
Procedūra loaddata; Var xmldoc: domdocument; Sakne: ixmldomelement; Sākt xmldoc: \u003d codomdocument.Create; Xmldoc.load ("Settins.xml"); Sakne: \u003d xmldoc.doc tableelement; Showmessage ("izmērs / platums"). Teksts); Sakne: \u003d nulle; Xmldoc: \u003d nulle; beigas;
Pirmkārt, tiek izveidots domaidošanas klases gadījums, pēc kura iestatījumu saturs.xml fails ir ielādēts atmiņā. Kā saskaņā ar standartu jebkuru Xml Failam jābūt saknes tagam (šajā gadījumā konfigurācija), tad mums ir nepieciešams, lai saņemtu to, izmantojot funkciju Projektēšana. Tad satura saturs starp tagiem
Šeit tiek izmantota metode SelectsingLende, kas ņem virkni kā parametru.
Laipni lūdzam! Šis emuārs ir veltīts internetam un datoriem, un, precīzāk, tie bija veltīti tiem.
Iespējams, ka tas ir uzreiz redzams, ka daudzus gadus nav parādījušies vietnē daudzus gadus. Jā, tas ir liktenis vairums blogu. Kad šis projekts bija vērienīgs uzņēmums, un autors, kā daudzos citos, kas tajā laikā rakstīja, bija liela mēroga plāni kļūt par vienu no labākajiem krievu emuāru autoriem. Nu, ja jūs tagad skatāties, tad no tiem emuāriem, kas tika izveidoti vienlaicīgi ar raktuvi, lielākā daļa jau bija izšķīduši mūžībā. Un es tritely kļuva par trūkstošo laika blogu. Tātad jā, tas vairs netiek atjaunināts. Lai gan es reiz uzvarēju šajā vietnē 2011. gada emuāra konkursā.
Man pat bija ideja noņemt visu, bet tad es pārskatīju vecos materiālus un sapratu, ka tie joprojām varētu būt noderīgi lasītājiem. Jā, daži raksti ir novecojuši (ja man ir pietiekami daudz spēka, viņi saņems atbilstošas \u200b\u200bzīmes), bet vietne, piemēram, var būt noderīga iesācējiem - šeit jūs varat izlasīt par pamata koncepcijām internetā, iemācīties pielāgot Internets, logi vai pat izlemt doties uz Linux. Tāpēc apskatiet virsrakstus un izvēlieties to, kas ir piemērots jums.
Un, galu galā, es ceru, ka tas ir vairāk nekā tikai emuārs, bet īsta interneta rokasgrāmata. Vietni var atrast direktoriju režīmā, kur visi pieejamie raksti ir strukturēti pēc kategorijām. Un kas varbūt zina, šeit sāk parādīties jauni kvalitatīvi raksti.
Slīpmašīna
Picodi.ru ir atlaižu portāls no starptautiskajiem kuponiem, poļu eksperts ietaupot un lēti pirkumi. Poļi tiek uzskatīti par vienu no ekonomiskākajām valstīm pasaulē, tāpēc nav pārsteidzoši, ka šāda veida projekts ir pieaudzis no Polijas startēšanas kodofrabatowe.pl. Kas var būt noderīgs šim portālam parasto interneta lietotājam Krievijā?
Mūsdienu Android telefoni ir vairāk nekā tālruņi. Jūs izmantojat instalēto programmu kopu, uz jūsu zvanu un īsziņu vēsturi, fotogrāfiju kolekcijām un daudz. Bet laiks iet, un pilnībā sakārtotā ierīce sāk palēnināt, bug vai vienkārši zaudē reprezentatīvu skatu, jo uz ekrāna šķembas. Ir jautājums par jaunu tālruņa izvēli un mainot Android tālruni. Un, ja izvēles jautājums, mēs tagad apiet partiju tagad, tad "pārvietojas" uz jaunu tālruni joprojām ir nopietna problēma - es absolūti nevēlos sākt visus datus no nulles. Šeit mēs par to runāsim šodien.
Lielākā daļa no šī emuāra lasītājiem, visticamāk, nekad neredzēs versiju kontroles versijas un tuvākajā nākotnē nenāks. Un piedod. Šis ārkārtīgi lietotājam draudzīgs izgudrojums tiek plaši izmantots programmētāji, bet, manuprāt, tas varētu būt ļoti noderīgi un tiem, kas aktīvi strādā ar tekstiem. Bet, iespējams, tagad nav versiju kontroles sistēmas, kuru būtu viegli sākt izmantot darbam "Office" (Microsoft Office). Tomēr es domāju, ka izstrādājumā izklāstītais materiāls var būt interesanti visiem lasītājiem.
Ja jūs domājāt par to, kā no jūsu TV skatīties filmas tīklā un piekļūstiet internetam, šis raksts ir jums. Nē, es zinu, ka dažiem televizoriem ir Smart TV funkcionalitāte, bet es nekad neesmu redzējis, ka tas darbojas labi. Acīmredzot, Google nesen demonstrēja pilnīgi satriecošu ierīci, nekavējoties beidzās ar sajūtu. Mēs runājam par mediju streamer Chromecast (Chromkast), kas ir ideāla un pieejama pagājušā gada labvēlīgā spēlētāja Nexus Q.
Dongle Chromkast, kuru dimensijas nepārsniedz 2 collas, savieno ar televizora HDMI portu un ļauj baudīt skatīšanās straumēšanas tīmekļa saturu. Lai kontrolētu Streamer, varat izmantot jebkuru ierīci (planšetdatoru, datoru, viedtālruni), pamatojoties uz iOS, Windows, Android vai Mac OS darbības platformu.
Šis raksts ir veltīts Android sistēmas atmiņas ierīcei, problēmām, kas var rasties tā trūkuma dēļ un to, kā tos atrisināt. Man pats nebija tik sen, ka mans Android tālrunis sāka regulāri izsniegt ziņojumus par atmiņas trūkumu, mēģinot izveidot konkrētu pieteikumu. Tas, kas man bija ļoti dīvaini, neskatoties uz to, ka uz aprakstu tirgū būtu bijis par 16GB, un es arī palielināju šo apjomu, izmantojot papildu atmiņas karti. Tomēr problēma bija, un man bija rūpīgi tinker, pirms es atradu pareizo risinājumu, kas neprasa saņemt saknes piekļuvi vai pilnīgu tālruņa atveseļošanos uz rūpnīcas stāvokli.
Nesen daudz uzmanības tiek pievērsta e-biznesa sistēmu veidošanai, vai arī to sauc arī - B2B (bizness uz uzņēmējdarbību). Ņemot vērā ieteikumus par apmaiņas straumēšanas sistēmu koordinēšanas sistēmu organismā - WWW konsorcijs: uzsvars tiek likts uz XML tehnoloģijām un XML dokumentu apmaiņas sistēmu veidošanu.
Izmantojot XML priekšrocība e-biznesā, ir augsta efektivitāte B2B sistēmām ar zemām izmaksām, lai tās izveidi sakarā ar skaidru un vizuālu pārstāvību strukturētu informāciju, spēju izmantot mūsdienīgus tīkla protokolus un izveidot reāllaika biznesa sistēmas.
Informācijas noformējuma neatkarība XML dokumentu veidā ļauj atšķirīgam, piedalīties elektroniskajā biznesā, lai ražotu neatkarīgu viena no otras.
Visās sistēmās apmaiņa parasti tiek uzcelta ar to pašu shēmu, izmantojot HTTP pieprasījumus. SSL protokols tiek piemērots kā SSL protokols (bet tas ir atsevišķs temats).
Viena no iespējāmajām XML ziņojumu apstrādes iespējām ir veidot bin / cgi (ISAPI) -News vai COM (servera) sastāvdaļas, kas veido vai apstrādā XML dokumentus.
No vienas puses, lietojumprogramma darbojas kā klients, kas pasta režīmā izsniedz HTTP vaicājumu, no otras puses, ir tīmekļa serveris, kurā tiek apstrādāta vaicājuma apstrāde un atbilde tiek apstrādāta. Informācijas apmaiņa izmanto XML dokumentus.
Viena no efektīvākajām ieviešanas iespējām ir esošā XML parsera izmantošana, kas atbalsta DOM modeli. Šāds parsētājs ir win`98 izplatīšanas piegāde vai IE 4.7 un augstāka neatņemama sastāvdaļa (WIN`95) un pārstāv COM serveri, kas atrodas MSXML.dll bibliotēkā.
Komponenta objekta modelis (COM) ir iekapsulēti dati un metodes vienā būtībā un veids, kā piekļūt tiem, izmantojot saskarnes sistēmu. Delphi ir vienkārši pieejams piekļuvei COM objektu klasēm (vairākas klases var tikt iekļautas vienā COM serverī). Piekļuve objektiem tiek veikta, inicializējot klases piemēram, izmantojot saskarnes sistēmu. Saskarņu aprakstu veic interfeisa definēšanas valoda (IDL), kas ir iespējams automātiski veikt vidēja līdzekļus.
Delphi ir imports no COM servera msxml.dllIDL interfeiss Apraksts Faili ir būvēti un binārā apraksta fails bibliotēkas tipa ir TLB. Šī darbība tiek veikta, izmantojot sistēmas izvēlni: Projekts | Ierakstiet bibliotēku importu:(1. attēls). Tiek parādīts šāds dialoglodziņš (2. attēls), kurā vēlaties izvēlēties COM objektu (mūsu gadījumā objekts ir reģistrēts kā "Microsoft.xmldom (2.0 versija)") un izveidojiet TLB failu (poga) Izveidot vienību.). Izmantojot TLB failu, vide rada "Paskalevsky" faila aprakstu COM Server - MSXML_TLB.PAS
MSXML_TLB.PAS fails apraksta visas saskarnes, konstantes un COM serverus.
Lai piekļūtu elementiem, direktīvā ir nepieciešams Izmanto.pievienojiet nosaukumu bibliotēkas apraksta failu (MSXML_TLB.PAS). Zemāk ir vienkāršākā programma, kas izmanto DOM standarta MSXML.dll Analyzer, kas lejupielādē XML dokumentu un parāda to MEMO1 teksta lodziņā elementā.
izmanto. Logi, ziņojumi, sysutils, klases, grafikas, kontroles, veidlapas, dialogi, oleserver, msxml_tlb, stdctrls; veids Tform1 \u003d. klase(Tform) poga1: tbutton; MEMO1: TMEMO; procedūra. Poga1Click (sūtītājs: togect); beigas; var. Forma1: tform1; ieviešana ($ R * .fm) Procedūra.Tform.button1click (sūtītājs: togect); // Soklass objekta domdocument deklarācija; var.cODOC: CODOMDOCUMENT; // klase, kas atbilst idomdocument interfeisam; var.Doc: Ixmldocument; sākt. // domdocument objekta piemēru; Doc: \u003d codoc.Create; // Zvaniet uz domdomdocument objekta gadījuma režīma metodi; Doc.load ("Data.xml"); // piekļūt Domdocument objekta XML īpašuma gadījumā; Memo1.text: \u003d dok.xml; beigas; beigas.Dom koncepcija - objekta dokumenta modelis
Katrs XML dokuments ir pārstāvēts kā objektu (klases) plurālisma kopums, ar kuru ir iespējama piekļuve atsevišķiem elementiem (objektu laukiem). Dom - interfeiss apraksta piekļuvi gan vienkāršiem domstring vai rakstura žēlastības objektiem un daļām vai atsevišķiem XML elementiem: domfragmentelement, domnode, domelement.
Turpmāk ir svarīgākās īpašības un metodes XMLDomdocument, Xmldomnode, Xmldomnodelist. Jāatzīmē, ka MSXML.dll XML Analyzer, MSXML.dll XML Analyzer, kurus iesniegts zemāk, izmanto MSXML.dll XML analizators nekā DOM konsorcijs, ko apstiprinājis W3C modelis.
Var atrast pilnīgāku interfeisa Domu objektu aprakstu
Xmldomdocument objekts | |
Ir objekta hierarhijas augstākais līmenis un satur metodes, lai strādātu ar dokumentu: tās lejupielādes, analīze, elementu radīšana, atribūti, komentāri tajā utt. . | |
Īpašības | |
Async. | Īpašums, kas identificē pašreizējo apstrādes režīmu |
Priekšnieks | Atgriež atsauci uz xmldomparseError kļūdas apstrādes objektu |
Iespējot - atspējot dokumentu verifikāciju. | |
url | Atgriež dokumenta URL |
projektēšana | Satur atsauci uz saknes elementu dokumenta kā XMMDomemement objektu. |
Metodes | |
slodze (URL) loadXML (XMLString) |
Ielādē XML dokumentu |
sAVE (OBJTARGET) | Saglabā XML dokumentu failā |
pārtraukt. | Dokumenta lejupielādes un apstrādes procesa pārtraukšana. |
createattribute (nosaukums) | Izveido jaunu atribūtu ar norādīto nosaukumu pašreizējam vienumam. |
createNode (veids, nosaukums, NameSpaceuri) | Izveido norādītā veida un nosaukuma mezglu |
kopiena (tagname) | Izveido dokumenta elementu ar norādīto nosaukumu. |
creattextNode (dati) | Izveido tekstu dokumenta iekšpusē |
getElementsBytagname (tagname) | Atgriež saiti uz dokumentu vienumu kolekciju ar norādīto nosaukumu |
nODEfromid (idstring) | Meklēšanas elements pēc identifikatora |
Xmldomnode objekts | |
Xmldomnode objekts, kas īsteno pamata domu interfeisu Mezgls., Izstrādāja, lai manipulētu ar atsevišķu papīra koka mezglu. Tās īpašības un metodes ļauj jums saņemt un mainīt pilnīgu informāciju par pašreizējo mezglu - tā veidu, vārdu, vārdu, uzvārdu, tā saturu, bērnu elementu sarakstu utt. | |
Īpašības | |
nodenums, baseename. | Atgriež pašreizējā mezgla nosaukumu. |
priedēklis. | Atgriež Namespace prefiksu. |
datu tips. | Definē pašreizējā mezgla satura veidu |
nODETYPE, NODETYPRING | Atgriež pašreizējā mezgla veidu: |
atribūti. | Atgriež pašreizējā mezgla atribūtu sarakstu kā XMLDomnagendeMap kolekciju. |
tekstu. | Atgriež pašreizējā atbalsta saturu teksta veidā. |
xml | Atgriež pašreizējā atbalsta XML attēlojumu. |
nodeva. | Atgriež pašreizējā mezgla saturu. |
bērni. | Atgriež bērnu elementu sarakstu kā Xmldomnodelist. |
firstild, lastchild. | Atgriež pirmo / pēdējo bērna elementu |
iepriekšējais, nextsibling | Atgriež iepriekšējo / \u200b\u200bnākamo māsu elementu. |
parentnode. | Satur atsauci uz mātes elementu. |
īpašnieks | Atgriež rādītāju uz dokumentu, kurā atrodas pašreizējais mezgls. |
Metodes | |
apbing (Newchild) | Pievieno jaunu bērnu elementu pašreizējam mezglam. |
insertbeRe (Newbild, atsūdzēt) | Ievieto bērna mezglu, kam tas ir pašreizējā subtree "pa kreisi" no mezglu, kas norādīta ar kūciņa parametru. |
klonenoda (dziļi) | Izveidojiet pašreizējā elementa kopiju. |
getattribute.(Vārds) getattributenode. (Vārds) setTattribute (vārds, vērtība) setattributenode (xmldomattribute) |
Piekļuve atribūtiem (radīšana, lasīšana, rakstīšana) objekts. Nosaukums - atribūta nosaukums, vērtība - tā vērtība. Atgriež Xmldomattribute objekta vērtību. |
rephickeChild (Newchild, Oldchild) Removechild (Oldchild) | Nomainot veco meitasuzņēmumu saraksta OldBild objektu Newbild. Oldbilda objekta noņemšana |
sELECTNODES SELECTSINGLENDE (DIGHTSTRING) | Atgriež Xmldomnodelist objektu, ko izvēlējies meklēšanas modelis vai pirmais mezgls |
transformnode (StySheeet) transformnodetObject (Stylesheet, Outputobject) |
Piešķir stila tabulu, lai atbalstītu pašreizējo mezglu un atgriež virkni - pārstrādes rezultātu. Atsauce uz domdomdocument objektu nosūta kā parametrs, kurā atrodas XSL instrukcijas. |
Izmantojot XML biznesā.
Par skaidrāku priekšstatu, ir nepieciešams paskaidrojums, un kāpēc tas viss ir nepieciešams, lai saprastu, kā tas darbojas:
Veidojot B2B vai korporatīvo ERP sistēmu, organizējot informācijas apmaiņu par XML dokumentiem starp Prom-I uzņēmumiem vai filiālēm, efektīvi pierādīta informācijas sistēma tiek izmantota, pamatojoties uz pieejamiem tīmekļa serveriem HTTP protokolos.
No vienas puses, lietojumprogramma darbojas kā klients, kas pasta režīmā izsniedz HTTP vaicājumu, no otras puses, tīmekļa serveris atrodas uz vietas, kurā pieprasījums tiek apstrādāts un atbilde. XML dokumenti tiek izmantoti kā apmaiņa.
Piemēram, vienkāršā korporatīvajā ERP sistēmā Grāmatvedības programmā (ACS grāmatvedība), ir nepieciešams, lai izveidotu noteiktu pieprasījumu rēķina un nodot to uz filiāli, kas ir noliktava (ACS noliktava). Māksla ir līdzīga problēma, izveidojot Sistēmas B2B, kad uzņēmums pieprasa produktu pieejamību (sniedz pirkumu) no piegādātāja V.
Uzņēmums A un viņa programma darbojas kā klients. Noliktava apkalpo piegādātāju, kas ir noliktavas BD komplekss SQL serverī. Exchange tiek veikta, izmantojot korporatīvo tīmekļa servera piegādātāju V.
Zemāk ir šāds tipisks apmaiņas algoritms:
3. attēls.
- Uzņēmums A.ierosmes process A.(Produkta pasūtījums), kas darbojas kā tīmekļa klients.
- Process A.izveido XML dokumentu (piemēram, rēķinu) un nosūta to kā pasta http vaicājumu Web piegādātāja serverim V. kā URI - tiek izmantots apstrādes pieteikuma identifikators. URI var būt tāds pats kā visu veidu dokumentiem vai individuālam katram tipam. Tas viss ir atkarīgs no B2B (WEB) servera struktūras.
- Web serveris analizē pieprasījumu un ģenerē serveri Process B.Noslēdzot XML dokumentu kā parametru.
Tīmekļa servera process tiek uzsākts un apstrādāts vai nu kā ASP lapa, CGI (ISAPI) - lietojumprogramma vai Java Sevrlet (servera lietojumprogramma) - Process B.- ģenerē pieprasījumu SQL datu bāzes serverim.
- SQL Server veic nepieciešamās darbības datubāzē, veido atbildi un atgriež to. Process B..
- Uz atbildi no SQL Server Process B. Izveido XML dokumentu (atbildi) un ļauj to kā atbildēt uz HTTP pieprasījumu klienta pieteikumu.
- Turklāt, atkarībā no situācijas klienta pusē, vai nu jauna HTTP vaicājumu veidojas, vai sesija beidzas.
Daži vārdi par dokumentu pārvaldības organizēšanu.
XML apmaiņas sistēmas vispārējais noteikums ir:
- pirmkārt- elektronisko dokumentu plūsmas un to struktūras ķēdes attīstība;
- otrkārt- procesu funkciju tabulu izstrāde (apakšprocesses) \\ t Kāda funkcija saistībā ar XML dokumentu īstenos katru procesu.
Katram XML dokumentam, piemēram, HTML dokumentam, būtu jāiekļauj ziņojuma galvene (informācijas ieslodzītais) un ziņojuma struktūra (vaicājumam šī informācija ir ierāmēta, atzīmējot, lai atbildētu uz pieprasījumu). Lai XML dokuments būtu pareizi izveidots, tas ir nepieciešams, lai tās divām sastāvdaļām "galvenes" un "pieprasījums", lai ierāmēti tagus, piemēram. Standarta dokumenta skats ir izklāstīts turpmāk:
Nosaukums (4. attēls), atšķirībā no dokumenta HTML, jāietver dažāda veida pakalpojumu informācija, tostarp informācija par dokumentu nosūtīšanas un apstrādes procesa veidu. Ir saņemta dokumenta informatīvā apstrāde, t.sk. Nozīmīga daļa ir ierāmēta ar tagu. Jāatzīmē, ka galvenes struktūrai jābūt vienotai visu veidu dokumentiem.
Par procesu, kas darbojas ar serveri, apstrādes algoritms ir vēlams (bet nav nepieciešams) veidot šādi:
6. attēls.
Daži galvenie mirkļi, veidojot klienta daļu
Kā jau paskaidrots, veidojot XML dokumentu, tiek prezentācija domas veidā. Zemāk ir piemērs teksta Delphi teksta XML ziņojumu galvenes programmas.
procedūra.Tthread1.HeaderCreate (sūtītājs: Togect); var. Lai izveidotu, ir nepieciešama // klases paziņojums CODOC: CODOMDOCUMENT; // xmldomdocument objekts Doc: Domdocument; R: ixmldomelement; Mezgls: ixmldomelement; // DomText txt: ixmldomText; // domattribute uzties: ixmldomattribute; sākt. // DOM dokumenta izveide Doc: \u003d codoc.Create; Doc.Set_async (False); // sākotnējais uzsākšanas dom dokuments Doc.loadXml ("Jāatzīmē, ka CODOC paziņojums: CODOMDOCOCUME un DOC: Domdocument Mainīgais, kā arī izveide Izveidot metodi (doc: \u003d codoc.Create;) tiek veikta vienu reizi. Deklarācija par mainīgo ir sadaļā apraksta globālo mainīgo, nevis vietējā procedūrā, kā parādīts redzamību šajā piemērā (I.E. Viens globālais mainīgais Domdocument tipa vienu programmas moduli).
Iepriekš minētās programmas rezultāts būs izveidotā galvene saistībā ar mūsu XML dokumenta piemēru: attēlots 5. attēlā.
5. attēls.
6. attēls.
Galvenā informācijas pārsūtīšanas priekšrocība XML dokumentu veidā ir tas, ka ir iespējams veidot ziņojumu, izmantojot DBVS neatkarīgo struktūru gan saņemtajā, gan nosūtītajā pusē. Izmantojot mūsu piemēru, ļaujiet tai nodot informāciju par uzņēmuma A rēķiniem, no 6. attēlā redzamās struktūras DBVS
Lai izveidotu XML dokumentu, kurā ir rēķins, sākotnēji būvēts SQL pieprasījums (vaicājums A) ar informāciju par rēķinu:
Atlasīt * No rēķina_general Kur Invoicenum \u003d: Num AtlasītPreces, quulity, cena, hz_cod No.Preces Kur Invoicenum \u003d: Num //: Num - parametrs, kas precizē rēķina numuru.Zemāk ir daļa no programmas, kas veido XML dokumenta ķermeni:
procedūra. Tthread1.Databodycreate (sūtītājs: tobject); var. // klases un xmldomdocument // codoc: codomdocument; // ir jābūt globālai, visam modulim. // doc: domdocument; // paziņojums par domelement objektiem R: ixmldomelement; // domelement; Mezgls, mezgls2: Ixmlomelement; Mezgla3, mezgls4: Ixmldomelement; // DomText txt: ixmldomText; Str: virkne; // Rēķina numurs: vesels skaitlis; - Globālais mainīgais - // Masching 987654 // Querya, Queryb: Virkne; - Globālais mainīgais, // uzturēt pieprasījumu pieprasīt // Querya - Pieprasījums un vispārīga informācija par rēķinu // Queryb - vaicājuma B Informācija par precēm, kas aprakstītas // rēķinā (skatīt tekstu) sākt. Query.Close; // Skatiet tekstu "Pieprasīt A" Query.Text: \u003d querya; // pieprasīt izpildi Query.execsql; Query.Open; // Iegūstiet sakņu elementa adresi R: \u003d doc.get_documentelement; Mezgla2: \u003d dok.Creeelement ("pieprasījums"); // izveidot domelement (tag) Mezgls: \u003d doc.Creeelement ("rēķins"); // vienuma pievienošana saknes R.Appendchild (Node2); // vienuma pievienošana Mezgls2. Papildinājums (mezgls); // izveidot domelement (tag) Mezgla3: \u003d doc.Creeelement ("Depure"); // vienuma pievienošana Mezgls. Apbing (Node3); // aicinājums uz "depurta" lauku Iela: \u003d query.fieldbyname ("Depurture"). Asstring; // teksta mezgla izveide \u003d lauka vērtība // mezgla piešķiršanas vērtība // teksta mezgls, mainīgais iela Node.appendchild (txt); // līdzīgas darbības tagamŠīs procedūras rezultātā veidojas šāds XML dokumenta teksts:
Open metode tiek izmantota, lai izveidotu vaicājumu. IxmlhttPrequest:
procedūra. Atvērts (const bstrmetod, - metode tips \u003d "Post" BSTRURL, - URL Varasync servera adrese, - asinhronais / sinhronais komunikācijas režīms \u003d TRUE BSTRUSER, - lietotājvārds BStrPassword autentifikācijas) - paroleIzveidojot servera daļu dokumentu apstrādes
Kā minēts iepriekš, HTTP pieprasījuma apstrādi var veikt vai nu CGI lietojumprogrammas vai Java servlets. Iespējamās opcijas asp lapu rakstīšanai. Bet šajā gadījumā datu pārraide ir iespējama tikai ar "Get", izmantojot vaicājuma virkni. Lai gan ASP lapu pieprasījuma HTTP apstrāde darbojas efektīvāk nekā CGI pieteikumu. Tomēr, manuprāt, bez jebkādas atšķirības, kā apstrādāt un vēl svarīgāk atrisināt jautājumu - kā veidot apstrādes programmu, nevis ar to, ko nozīmē.
Ja iepriekšējā nodaļā mēs pārskatījām XML dokumentu veidošanas iespējas, tad servera lietojumprogrammas uzdevums ir pretējs XML dokumentiem. Zemāk ir daļa no programmas, kas analizē XML dokumentu:
procedūra.Tthread1.Dataparser (sūtītājs: tobject); var. // paziņojums par domelement objektiem R, fnode: ixmldomelement; Iela, faila nosaukums: virkne; Parms: virkne; // soklass paziņojums un Codocxml, codocxsl, codokresult: codomdocument; // xmldomdocument objekts Xmldoc, xsldoc, resdoc: domdocument; // httpstr: virkne; - globāls mainīgais, kas satur HTTP vaicājuma virkni Sākt. Xmldoc: \u003d codocxml.Create; Xmldoc.loadXml (httpstr); // Iegūstiet sakņu elementa adresi R: \u003d doc.get_documentelement; // elementa vērtības iegūšana Fnode: \u003d R.Selectsinglenode ("// Typedocument"); // saņemt atribūtu vērtības ID \u003d "pasūtījums" Faila nosaukums: \u003d fnode.getattibute ("ID"); // un veidojot faila nosaukumu order.xsl Faila nosaukums: \u003d filename + ". XSL"; // dokumenta izveide xsldoc Xsldoc: \u003d codocxsl.Create; Xsldoc.loadXml (faila nosaukums); // xmldoc dokumenta izveide RezultātsDoc: \u003d codokresult.Create; // sinhronās apstrādes režīma iestatīšana RezultātsDoc.Set_async (FALSE); // debijas pārbaudes instalēšana RezultātsDoc.validateOnase: \u003d taisnība; // sabrukums xmldoc ar XSL veidni Xmldoc.transformnoc, resdoc (xsldoc, resdoc); // mainīgais iela tiek piešķirts teksta vērtībai // Iegūtais dokuments. Iela: \u003d rezultātsDoc.text; // Meklēšanas elements Fnode: \u003d R.Selectsinglenode ("// Invoicenumber"); // un iegūt elementa vērtību Parms: \u003d fnode.Text; // aizver piekļuves pieprasījumu Query.Close; Query.Text: \u003d str; // parametra vērtības piešķiršana Query.params.asstring: \u003d Parm; // pieprasīt izpildi Query.execsql; beigas;Viss parsēšanas diapazons ir piemērot XSL veidni, kas veidojas katram dokumenta tipam individuāli. Analīzes rezultāts ir SQL vaicājuma virkne. Rezultātā radušās SQL vaicājuma virknes izpilde veiks nepieciešamās izmaiņas DBVS.
Priekšrocība, izmantojot veidni izmantojot veidni, ir arī tas, ka izrādās dažas datu elastība, un tiek iegūta pilnīga algoritma darbības neatkarība no programmas koda. Zemāk ir XSL veidnes teksts, ko izmanto dokumenta tipa apstrādei.
Pagrieziet iepriekš minēto piemēru, jāatzīmē, ka tagu pāru izmantošana un formāla, jo Pēc parsēšanas vismaz vienam mezglam jābūt saistītā XML dokumentā. Regdoc.Text metode piešķir teksta vērtību, kas iegūta analīzē XML dokumentu rezultātā. Šajā gadījumā vērtība ir viss, ka tagu pāri ir ierāmēti un, t.i. Mēs esam izveidojuši SQL pieprasījumu.
Vēl viena rakstīšanas iezīme jāatzīmē iespēja izmantot SQL parametru : Num. Parametra izmantošana ļauj vienkāršot XSL veidnes tekstu. Definīcija XML dokumentu mezglu atbilstošo elementu vērtība sākotnēji izvēloties atbilstošā mezgla nosaukumu, piemēram:
Īsi par XSL
XSL saīsinājums nāk no paplašināmas stilu valodas stila tabulas formatēšanas valodas (XML datiem). Kā tas ir skaidrs no paplašināmā stilaheet valodas (XSL) galvenes (XSL) tiek izmantots, lai formatētu XML datus. Ar definīciju W3C XSL sastāv no divām daļām:
- XSLT - XSL transformācija. Valoda, ko izmanto, lai konvertētu vai formātu (pārveidot) XML dokumentus. Tādējādi, izmantojot XSLT, mēs varam iegūt dažādas vairāku datu un datu prezentācijas formu sadaļas.
- Formatēšanas elementi. Šie elementi ietver visus tipogrāfijas datu dizaina elementus, pēc tam, kad tie tiek apstrādāti, izmantojot XSL. Izmanto tikai, lai veidotu HTML lapas.
Izmantojot XSLT, mēs varam izvēlēties nepieciešamos XML faila datus un sakārtot tos veidlapā, lai nodrošinātu lietotājam. Piemēram, mūsu gadījumā mēs pārveidojām XML datus kā SQL vaicājumu. Klasiskā XSL lietojumprogramma parasti formatē datus kā HTML lapas vai retu pārstāvību RTF failu veidā.
XSL failā aprakstīta veidne (veidne), saskaņā ar kuru tiks veikta XML datu konvertēšana. Atgriežoties XSL veidnes, XSLT (direktīvās) var piešķirt šādus elementus:
XSL direktīva | apraksts |
---|---|
xSL: uzklājiet veidnes | Direktīva, norādot piemērotu veidņu atribūtu atlasīt \u003d "veidnes nosaukums" |
xSL: atribūts. | izveido atribūtu koku un pievieno to izejas elementam, nosaukumam \u003d "atribūta nosaukums" parametrs, NameSpace - URI uz nosaukumvietas (NameSpace prefiksu) |
xSL: zvanu veidne | izraisa veidni, atribūtu nosaukumu \u003d "URI uz veidni" |
xSL: izvēlēties. xSL: kad. xSL: Pretējā gadījumā. |
izvēloties ar nosacījumu XSL: kad expr \u003d "aprēķinot izteiksmi uz skriptu", valoda \u003d "valodas nosaukums" tests \u003d "aprēķināta izteiksme" |
xSL: Komentārs | izveido komentāru par izejas dokumentu |
xSL: Kopēt xSL: kopija |
kopē pašreizējo mezglu izvades avotā vai ievieto dokumenta fragmentu uz mezglu, kur atlasītais atribūts atlasīt \u003d "Source mezgla nosaukums" |
xSL: elements | izveido izejas elementu pēc nosaukuma, atribūta nosaukums \u003d "Elementa nosaukums", NameSpace \u003d "URI atsauce uz Namespace" |
xSL: katram | atkārtoti lietojiet veidni visiem mezglu saraksta mezgliem, izvēlieties Atribūts nosaka mezglu sarakstu. |
xSL: ja. | nosacījumu pārbaudi nosaka testa atribūts kā izteiksme |
xSL: ietver | ietver ārējo veidni, atribūts href \u003d "URI atsauce" |
xSL: izeja | norāda produkcijas rezultātu, atribūtam var būt "XML", "HTML" vai "Teksts" |
xSL: param | norāda parametru vērtību, atribūtu nosaukumu \u003d "Parametra nosaukumu", izvēlieties \u003d "Value" |
xSL: apstrādes instrukcija | izveido instrukcijas apstrādei, atribūta nosaukumam \u003d "Nosaukuma procesa instrukcijas" |
xSL: Kārtot. | veido daudzus mezglus, atribūti izvēlas \u003d "mezgla nosaukums", datu tipa \u003d datu tips ("teksts" | "numurs" | qname), pasūtījums \u003d kārtot virzienu ("augošā secībā" | "dilstošā") |
xSL: Stylesheet. | definē XSL veidnes dokumentu, ir XSLT sakņu elements |
xSL: veidne. | norāda XSL veidni, nosaukumu \u003d "URI prefiksu atribūts uz veidnes nosaukumu", Match \u003d "Piezīme mezglam, kurai piemēro veidni" |
xSL: teksts. | izveido tekstu izejas plūsmai, atslēgt-izvade-bēgšana \u003d "jā" vai "nē" atribūts norāda uz spēju ģenerēt ESC rakstzīmes |
xSL: vērtība | ievieto izvēlētā mezgla vērtību kā tekstu, izvēlieties \u003d "rādītāju uz mezglu" atribūts, no kura vērtība tiek uzņemta |
xSL: mainīgais | norāda mainīgo robežu vērtību, nosaukuma atribūts \u003d "mainīgais nosaukums", izvēlieties \u003d "Aprēķiniet mainīgā vērtību" |
xSL: ar param | attiecas parametru uz veidni, nosaukuma atribūts \u003d "parametra nosaukums", izvēlieties \u003d izteiksme, lai aprēķinātu pašreizējo kontekstu, noklusējuma vērtību "." |
Secinājums
Visbeidzot, jāatzīmē, ka, izmantojot standarta XML parsētāju msxml.dlltas nav vienīgais līdzeklis, lai analizētu un veidotu XML dokumentus. Piemēram, lai izveidotu XML dokumentus, lai efektīvi izmantotu komponentus Tpageproduser.un Ttableproduser.. Bet šis raksts tikai uzsver plašumu un iespēju piemērot DOM modeli praksē.
Autors būs ļoti pateicīgs par atgriezenisko saiti par tēmas atbilstību, vispārējo saturu, prezentācijas stilu, kā arī visus citus komentārus, kas palīdzēs vēl vairāk uzlabot rakstu savākšanas kvalitāti un grāmatu izlaišanu, kas aptver XML dokumentu izmantošanas praktiskās puses priekšmets e-komercijā. Plašāku informāciju par elektronisko dokumentu piemērošanas praktisko pusi jūs varat mācīties no www.edocs.al.ru par autora tīmekļa vietnē, ir plānots izvietot avota tekstus un piemērus.