Izmantojot XML dokumentu objekta modeli. Interneta rokasgrāmata - visas interesantākās online Kā izveidot XML failu Delphi

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:

Impērija burleska Bob Dylan. ASV. Kolumbija. 10.90 1985 Slēpt savu sirdi. Bonnie Tylor. Apvienotā Karaliste. CBS ieraksti. 9.90 1988 ... Atbrīvo manu sirdi. Joe cocker. ASV. Emi 8.20 1987

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:

Impērija burleska Bob Dylan. ASV. Kolumbija. 10.90 1985

noslēguma elementa noņemšana Otrajā rindā:</p><p> <CD> <TITLE>Impērija burleska <ARTIST>Bob Dylan.</ARTIST> <COUNTRY>ASV.</COUNTRY> <COMPANY>Kolumbija.</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> </p><p>Tagad uzrakstiet kodu, kas atdod xmldomparseErrorror objekta īpašības:</p><p>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;</p><p>un izpildiet mūsu pieteikumu. Tā rezultātā mēs iegūstam šādu kļūdu.</p> <p>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.</p> <p>Tagad atjaunojiet aizvēršanas vienumu <TITLE> Mūsu dokumentā un turpiniet diskusiju par XML DOM.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Piekļuve dokumentu kokam</h2> <p>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:</p><p>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;</p><p>Mūsu XML dokumentam mēs saņemam šādu tekstu.</p> <p>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.</p> <p>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.</p> <p>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ā:</p><p>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;</p><p>Mūsu XML dokumentam mēs saņemsim šādu tekstu.</p> <p>Ņ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.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Dokumentu filiāle - XMLDomNode objekts</h2> <p>XMLDomNode objekts ir dokumentu filiāle. Mēs jau esam saskārušies ar šo objektu, kad tika iegūts dokumenta saknes elements:</p><p>Sakne: \u003d xmldoc.doc tableelement;</p><p>Lai iegūtu informāciju par XML dokumenta filiāli, varat izmantot XMLDomNode objekta īpašības (1. tabula).</p> <p>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> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h3> Pārvietojas uz dokumentu koku</h3> <p>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.</p> <p>Tagad es pārvarēšu visas XML dokumenta filiāles:</p><p>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;</p><p>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.</p> <p>Apsveriet procesu, izmantojot Selectnodes metodi, lai iegūtu visas filiāles, kurām ir CD filiāle un inflācija.</p><p>Sakne: \u003d xmldoc.doc tableelement; Mezgli: \u003d root.Selectnodes ("CD / cena");</p><p>Mezglu kolekcija tiks ievietota visas Switter Cena CD filiāles. XSL veidņu diskusija nedaudz vēlāk atgriezīsies.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h3> Manipulācija ar meitas filiālēm</h3> <p>Par meitasuzņēmumu manipulācijām, mēs varam izmantot metodes XMLDomNode objektu (2. tabula).</p> <p>Lai pilnībā izdzēstu pirmo diska ierakstu, jums ir nepieciešams veikt šādu kodu:</p><p>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);</p><p>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:</p><p>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);</p><p>Iepriekš minētajā piemērā mēs noņēmām pirmo filiāli. <CD>…</CD>un filiāles pirmais elements - <TITLE>….

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 - Newnode: \u003d xmldoc.createnode (1, "CD"); // pievienot elementu Bērns: \u003d xmldoc.createnode (1, "nosaukums", ''); // pievienot newnode.appendchild (bērnu) elementu; // un noteikt savu vērtību bērna.Text: \u003d 'rozā floyd'; // pievienot elementu <ARTIST> Bērns: \u003d xmldoc.createnode (1, "mākslinieks", '); // pievienot newnode.appendchild (bērnu) elementu; // un izveidot savu vērtību bērna.Text: \u003d "nodaļas zvans"; // pievienot elementu <COUNTRY> Bērns: \u003d xmldoc.createnode (1, "valsts", '); // pievienot newnode.appendchild (bērnu) elementu; // un noteikt savu vērtību bērnu.Text: \u003d 'Apvienotā Karaliste'; // pievienot elementu <COMPANY> Bērns: \u003d xmldoc.createnode (1, "uzņēmums", '); // pievienot newnode.appendchild (bērnu) elementu; // un iestatiet tās vērtību bērns.Text: \u003d 'EMI ieraksti SIA'; // pievienot elementu <PRICE>Bērns: \u003d xmldoc.createnode (1, "cena", "); // pievienot newnode.appendchild (bērnu) elementu; // un izveidot savu vērtību bērnu.Text: \u003d '11 .99 "; // Pievienot elementu <YEAR> Bērns: \u003d xmldoc.createnode (1, "gads", ''); // pievienot newnode.appendchild (bērnu) elementu; // un noteikt savu vērtību bērna.Text: \u003d '1994' '; // un pievienojiet saknes.appendchild filiāli (Newnode); ...</p><p>Iepriekš minētais kods parāda šādu darbību secību, lai pievienotu jaunu filiāli:</p> <ul><li>Jaunas filiāles izveide, izmantojot CreateNode: <ul><li>vienuma izveide, izmantojot Createnermode metodi;</li> <li>pievienojot elementu filiālei ar 6. papildpakalpojumu metodi;</li> <li>noteikt elementa vērtību, izmantojot teksta īpašumu;</li> <li>... atkārtojiet visus vienumus.</li> </ul></li> <li>Pievienojot jaunu filiāli dokumentam ar papildinājumu.</li> </ul><p>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.</p> <h2> Nozaru komplekts - XMLDomnodelist objekts</h2> <p>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.</p> <p>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.</p> <p>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> <p>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.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Dokumentu izveide un taupīšana</h2> <p>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"):</p><p>Var xmldoc: ixmldomdocument; Sakne: ixmldomnode; Mezgls: ixmldomnode; S: ligzdošana; ... S: \u003d ' <CATALOG></CATALOG>'; Xmldoc: \u003d codomdocument.Create; Xmldoc.async: \u003d FALSE; Xmldoc.loadxml (-i); Sakne: \u003d xmldoc.doc tableelement; Mezgls: \u003d xmldoc.createnode (1, "CD", ''); Root.appendchild (mezgls); Memo1.lines.add (xmldoc.xml); ... xmldoc: \u003d nulle;</p><p>Pēc XML dokumenta veidošanas saglabājiet to failā, izmantojot Saglabāt metodi. Piemēram:</p> <p>Xmldoc.save ("C: dati \\ tEwcd.xml");</p> <p>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ā:</p><p>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;</p><p>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.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Izmantojot XSL veidnes</h2> <p>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:</p><p>Lai noskaidrotu, vai diski, kuru izpildītāji tiek izlaisti Amerikas Savienotajās Valstīs, pieprasījums ir veidots šādi:</p><p>Mezgli: \u003d root.Selectnodes ("CD / mākslinieks");</p><p>Tālāk redzams, kā atrast pirmo disku direktorijā:</p><p>Mezgli: \u003d root.Selectnodes ("CD / nosaukums");</p><p>un pēdējais:</p><p>Mezgli: \u003d root.Selectnodes ("CD / nosaukums");</p><p>Lai atrastu Bob Dilan diskus, varat veikt šādu vaicājumu:</p><p>Mezgli: \u003d root.Selectnodes ("CD [$ jebkurš $ ARST \u003d" BOB DYLAN "] / Nosaukums");</p><p>un, lai iegūtu sarakstu diski, kas izlaisti pēc 1985. gada, mēs veicam šādu vaicājumu:</p><p>Mezgli: \u003d root.Selectnodes ("CD / nosaukums");</p><p>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 <TD>…</TD>.</p> <p>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).</p> <p>XSL veidnes pārklāšanai mūsu katalogā izskatās šādi:</p><p>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;</p><p>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.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Secinājums</h2> <p>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.</p> <p>ComputerPress 12 "2000</p> <p>Pasūtīt uzdevumus Delphi <br> 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.</p> <p>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. <br></p> <h2>Kas ir programmēšanas valodas sintakse?</h2> <p>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.</p><p>C + + programmēšanas valodā tas pats cikls ir nedaudz atšķirīgs: par (n \u003d 1; n mēs uzrakstām kalkulatoru</p><p>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.</p> <p>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.</p><p>Atverot attīstības vidi, mēs redzam elementu formu un paneli. Šeit ir veidlapa.</p> <p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-24.jpg' width="100%" loading=lazy loading=lazy></p><p>Šeit ir elementu panelis.</p><p>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ā.</p><p>Tie ir teksta lauki ieejai un regulārai pogai. Jūs sastopaties ar šiem elementiem, izmantojot gandrīz jebkuru Windows programmu. Paskaties.</p><p><img src='https://i1.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-27.jpg' width="100%" loading=lazy loading=lazy><br></p> <p>Tagad tīriet šos uzrakstus. Noklikšķiniet uz cilnes Skats. Un noklikšķiniet uz "objektu inspektors. Šis logs parādīsies.</p><p><img src='https://i0.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-28.jpg' width="100%" loading=lazy loading=lazy></p><p>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.</p><p>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.</p><p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-29.jpg' width="100%" loading=lazy loading=lazy></p><p>Saskaņā ar rezultātu mūsu veidlapa izskatās šādi.</p><p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-30.jpg' width="100%" loading=lazy loading=lazy><br></p> <p>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.</p><p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-31.jpg' width="100%" loading=lazy loading=lazy></p><p>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.</p><p><img src='https://i1.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-32.jpg' width="100%" loading=lazy loading=lazy></p><p>Šā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.</p> <p>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.</p><p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-34-2.jpg' width="100%" loading=lazy loading=lazy></p> <h2>Secinājums</h2> <p>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.</p><p><span class="6qR5tjJKK3g"></span></p> <p>Daudzi Delphi programmētāji, saglabājot iestatījumus, ir saistīti, izmantojot <i>Ini.</i> 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ē. <br><br> Tomēr ir strukturēta ideāla iespēja uzglabāt programmas iestatījumus <i>Xml</i> 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.</p><p>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 <i>Ini.</i> 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.</p><p><img src='https://i1.wp.com/zoo-mania.ru/wp-content/uploads/2011/08/settings.ini_.jpg' height="145" width="247" loading=lazy loading=lazy><br> Pielietojot pieeju, izmantojot <i>Xml</i> 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 <i>Xml</i> Delphi ir daudz trūkumu, tāpēc es iesaku izmantot standarta bibliotēku <b>Msxml.</b>. Parasti tā ir Windows ģimenes sistēmu noklusējuma daļa.</p><p><img src='https://i2.wp.com/zoo-mania.ru/wp-content/uploads/2011/08/settings.xml_.jpg' align="center" width="100%" loading=lazy loading=lazy><br> Savienošanai <b>Msxml.</b>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 <b>Msxml2_tlb.pas.</b> 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. <b>Msxml.</b>, Tas ir pietiekami, lai lietojumam pievienotu MSXML2_TLB.</p><p>Lai nodrošinātu skaidrību, apsveriet šādu piemēru šīs bibliotēkas piemērošanas:</p><p>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;</p><p>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 <i>Xml</i> Failam jābūt saknes tagam (šajā gadījumā <i>konfigurācija</i>), tad mums ir nepieciešams, lai saņemtu to, izmantojot funkciju <i>Projektēšana</i>. Tad satura saturs starp tagiem <width></width> kas savukārt ir starp tagiem <size></size> . Tādējādi, no Iestatījumi.xml failu, mūsu metode izvieto tekstu MessageBox <i>"100px"</i>.</p><p> <?xml version="1.0" encoding="utf-8"?> <config> <size> <height>500px</height> <width>100px.</width> </size> </config> </p><p>Šeit tiek izmantota metode SelectsingLende, kas ņem virkni kā parametru.</p> <p>Laipni lūdzam! Šis emuārs ir veltīts internetam un datoriem, un, precīzāk, tie bija veltīti tiem.</p> <p>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ā.</p> <p>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.</p> <p>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.</p> <p><i>Slīpmašīna</i></p> <p>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ā?</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>Š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.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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).</p> <p>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.</p> <p>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.</p> <p>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ā.</p> <p>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.</p> <p>Delphi ir imports no COM servera <i>msxml.dll</i>IDL 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: <b>Projekts | Ierakstiet bibliotēku importu:</b>(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) <b>Izveidot vienību.</b>). Izmantojot TLB failu, vide rada "Paskalevsky" faila aprakstu COM Server - MSXML_TLB.PAS</p> <p>MSXML_TLB.PAS fails apraksta visas saskarnes, konstantes un COM serverus.</p> <p>Lai piekļūtu elementiem, direktīvā ir nepieciešams <b>Izmanto.</b>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ā.</p> <b>izmanto.</b> Logi, ziņojumi, sysutils, klases, grafikas, kontroles, veidlapas, dialogi, oleserver, msxml_tlb, stdctrls; <b>veids</b> Tform1 \u003d. <b>klase</b>(Tform) poga1: tbutton; MEMO1: TMEMO; <b>procedūra.</b> Poga1Click (sūtītājs: togect); <b> beigas;</b> <b>var.</b> Forma1: tform1; <b>ieviešana</b> ($ R * .fm) <b>Procedūra.</b>Tform.button1click (sūtītājs: togect); <span> // Soklass objekta domdocument deklarācija;</span> <b>var.</b>cODOC: CODOMDOCUMENT; <span> // klase, kas atbilst idomdocument interfeisam;</span> <b>var.</b>Doc: Ixmldocument; <b>sākt.</b> <span> // domdocument objekta piemēru;</span> Doc: \u003d codoc.Create; <span> // Zvaniet uz domdomdocument objekta gadījuma režīma metodi;</span> Doc.load ("Data.xml"); <span> // piekļūt Domdocument objekta XML īpašuma gadījumā;</span> Memo1.text: \u003d dok.xml; <b>beigas;</b> <b>beigas.</b> <h2>Dom koncepcija - objekta dokumenta modelis</h2> <p>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.</p> <p>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.</p> <p>Var atrast pilnīgāku interfeisa Domu objektu aprakstu</p> <table cellspacing="0" cellpadding="4" width="500" border="1"><tbody><tr><td valign="top" colspan="2"> Xmldomdocument objekts</td> </tr><tr><td valign="top" colspan="2">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. .</td> </tr><tr><td valign="top" colspan="2"><b>Īpašības</b> </td> </tr><tr><td valign="top" width="39%"><b>Async.</b> </td> <td valign="top" width="61%">Īpašums, kas identificē pašreizējo apstrādes režīmu</td> </tr><tr><td valign="top" width="39%" height="19"><b>Priekšnieks</b> </td> <td valign="top" width="61%" height="19">Atgriež atsauci uz xmldomparseError kļūdas apstrādes objektu</td> </tr><tr><td valign="top" width="39%"><b>Iespējot - atspējot dokumentu verifikāciju.</b> </td> <td> </td> </tr><tr><td valign="top" width="39%"><b>url</b> </td> <td valign="top" width="61%">Atgriež dokumenta URL</td> </tr><tr><td valign="top" width="39%"><b>projektēšana</b> </td> <td valign="top" width="61%">Satur atsauci uz saknes elementu dokumenta kā XMMDomemement objektu.</td> </tr><tr><td valign="top" colspan="2"><b>Metodes</b> </td> </tr><tr><td valign="top" width="39%"><b>slodze (URL) <br>loadXML (XMLString)</b> </td> <td valign="top" width="61%">Ielādē XML dokumentu</td> </tr><tr><td valign="top" width="39%"><b>sAVE (OBJTARGET)</b> </td> <td valign="top" width="61%">Saglabā XML dokumentu failā</td> </tr><tr><td valign="top" width="39%"><b>pārtraukt.</b> </td> <td valign="top" width="61%">Dokumenta lejupielādes un apstrādes procesa pārtraukšana.</td> </tr><tr><td valign="top" width="39%"><b>createattribute (nosaukums)</b> </td> <td valign="top" width="61%">Izveido jaunu atribūtu ar norādīto nosaukumu pašreizējam vienumam.</td> </tr><tr><td valign="top" width="39%"><b>createNode (veids, nosaukums, NameSpaceuri)</b> </td> <td valign="top" width="61%">Izveido norādītā veida un nosaukuma mezglu</td> </tr><tr><td valign="top" width="39%"><b>kopiena (tagname)</b> </td> <td valign="top" width="61%">Izveido dokumenta elementu ar norādīto nosaukumu.</td> </tr><tr><td valign="top" width="39%"><b>creattextNode (dati)</b> </td> <td valign="top" width="61%">Izveido tekstu dokumenta iekšpusē</td> </tr><tr><td valign="top" width="39%"><b>getElementsBytagname (tagname)</b> </td> <td valign="top" width="61%">Atgriež saiti uz dokumentu vienumu kolekciju ar norādīto nosaukumu</td> </tr><tr><td valign="top" width="39%"><b>nODEfromid (idstring)</b> </td> <td valign="top" width="61%">Meklēšanas elements pēc identifikatora</td> </tr></tbody></table><br><table cellspacing="0" cellpadding="4" width="500" border="1"><tbody><tr><td valign="top" colspan="2"> <b>Xmldomnode objekts</b> </td> </tr><tr><td valign="top" colspan="2">Xmldomnode objekts, kas īsteno pamata domu interfeisu <b>Mezgls.</b>, 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.</td> </tr><tr><td valign="top" colspan="2"><b>Īpašības</b> </td> </tr><tr><td valign="top" width=" "><b>nodenums, baseename.</b> </td> <td valign="top" width="65%">Atgriež pašreizējā mezgla nosaukumu.</td> </tr><tr><td valign="top" width="35%"><b>priedēklis.</b> </td> <td valign="top" width="65%">Atgriež Namespace prefiksu.</td> </tr><tr><td valign="top" width="35%"><b>datu tips.</b> </td> <td valign="top" width="65%">Definē pašreizējā mezgla satura veidu</td> </tr><tr><td valign="top" width="35%"><b>nODETYPE, NODETYPRING</b> </td> <td valign="top" width="65%">Atgriež pašreizējā mezgla veidu:</td> </tr><tr><td valign="top" width="35%"><b>atribūti.</b> </td> <td valign="top" width="65%">Atgriež pašreizējā mezgla atribūtu sarakstu kā XMLDomnagendeMap kolekciju.</td> </tr><tr><td valign="top" width="35%"><b>tekstu.</b> </td> <td valign="top" width="65%">Atgriež pašreizējā atbalsta saturu teksta veidā.</td> </tr><tr><td valign="top" width="35%"><b>xml</b> </td> <td valign="top" width="65%">Atgriež pašreizējā atbalsta XML attēlojumu.</td> </tr><tr><td valign="top" width="35%"><b>nodeva.</b> </td> <td valign="top" width="65%">Atgriež pašreizējā mezgla saturu.</td> </tr><tr><td valign="top" width="35%"><b>bērni.</b> </td> <td valign="top" width="65%">Atgriež bērnu elementu sarakstu kā Xmldomnodelist.</td> </tr><tr><td valign="top" width="35%"><b>firstild, lastchild.</b> </td> <td valign="top" width="65%">Atgriež pirmo / pēdējo bērna elementu</td> </tr><tr><td valign="top" width="35%"><b>iepriekšējais, nextsibling</b> </td> <td valign="top" width="65%">Atgriež iepriekšējo / \u200b\u200bnākamo māsu elementu.</td> </tr><tr><td valign="top" width="35%"><b>parentnode.</b> </td> <td valign="top" width="65%">Satur atsauci uz mātes elementu.</td> </tr><tr><td valign="top" width="35%"><b>īpašnieks</b> </td> <td valign="top" width="65%">Atgriež rādītāju uz dokumentu, kurā atrodas pašreizējais mezgls.</td> </tr><tr><td valign="top" colspan="2"><b>Metodes</b> </td> </tr><tr><td valign="top" width="35%"><b>apbing (Newchild)</b> </td> <td valign="top" width="65%">Pievieno jaunu bērnu elementu pašreizējam mezglam.</td> </tr><tr><td valign="top" width="35%"><b>insertbeRe (Newbild, atsūdzēt)</b> </td> <td valign="top" width="65%">Ievieto bērna mezglu, kam tas ir pašreizējā subtree "pa kreisi" no mezglu, kas norādīta ar kūciņa parametru.</td> </tr><tr><td valign="top" width="35%"><b>klonenoda (dziļi)</b> </td> <td valign="top" width="65%">Izveidojiet pašreizējā elementa kopiju.</td> </tr><tr><td valign="top" width="35%"><b>getattribute.</b><b>(Vārds) <br> </b><b>getattributenode.</b><b><span> (Vārds) <br>setTattribute (vārds, vērtība) <br>setattributenode (xmldomattribute)</span> </b> </td> <td valign="top" width="65%">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.</td> </tr><tr><td valign="top" width="35%"><b>rephickeChild (Newchild, Oldchild) Removechild (Oldchild)</b> </td> <td valign="top" width="65%">Nomainot veco meitasuzņēmumu saraksta OldBild objektu Newbild. Oldbilda objekta noņemšana</td> </tr><tr><td valign="top" width="35%"><b>sELECTNODES SELECTSINGLENDE (DIGHTSTRING)</b> </td> <td valign="top" width="65%">Atgriež Xmldomnodelist objektu, ko izvēlējies meklēšanas modelis vai pirmais mezgls</td> </tr><tr><td valign="top" width="35%"><b>transformnode (StySheeet) <br>transformnodetObject (Stylesheet, Outputobject)</b> </td> <td valign="top" width="65%">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.</td> </tr></tbody></table><br><h2>Izmantojot XML biznesā.</h2> <p>Par skaidrāku priekšstatu, ir nepieciešams paskaidrojums, un kāpēc tas viss ir nepieciešams, lai saprastu, kā tas darbojas:</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>Zemāk ir šāds tipisks apmaiņas algoritms:</p> <br>3. attēls. <ol><li><b>Uzņēmums A.</b>ierosmes <b>process A.</b>(Produkta pasūtījums), kas darbojas kā tīmekļa klients.</li><li><b>Process A.</b>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.</li><li>Web serveris analizē pieprasījumu un ģenerē serveri <b>Process B.</b>Noslēdzot XML dokumentu kā parametru. <br>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)</li><li><b>Process B.</b>- ģenerē pieprasījumu SQL datu bāzes serverim.</li><li>SQL Server veic nepieciešamās darbības datubāzē, veido atbildi un atgriež to. <b>Process B.</b>.</li><li>Uz atbildi no SQL Server <b>Process B.</b> Izveido XML dokumentu (atbildi) un ļauj to kā atbildēt uz HTTP pieprasījumu klienta pieteikumu.</li><li>Turklāt, atkarībā no situācijas klienta pusē, vai nu jauna HTTP vaicājumu veidojas, vai sesija beidzas.</li> </ol><h2>Daži vārdi par dokumentu pārvaldības organizēšanu.</h2> <p>XML apmaiņas sistēmas vispārējais noteikums ir:</p><ul><li><b>pirmkārt</b>- elektronisko dokumentu plūsmas un to struktūras ķēdes attīstība;</li><li><b>otrkārt</b>- procesu funkciju tabulu izstrāde (apakšprocesses) \\ t Kāda funkcija saistībā ar XML dokumentu īstenos katru procesu.</li> </ul><p>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:</p> <p>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.</p> <p>Par procesu, kas darbojas ar serveri, apstrādes algoritms ir vēlams (bet nav nepieciešams) veidot šādi:</p> <img src='https://i1.wp.com/codenet.ru/np-includes/upload/2005/01/05/128666.jpg' height="500" width="408" loading=lazy loading=lazy><br>6. attēls. <h2>Daži galvenie mirkļi, veidojot klienta daļu</h2> <p>Kā jau paskaidrots, veidojot XML dokumentu, tiek prezentācija domas veidā. Zemāk ir piemērs teksta Delphi teksta XML ziņojumu galvenes programmas.</p> <b>procedūra.</b>Tthread1.HeaderCreate (sūtītājs: Togect); <b>var.</b> <span> Lai izveidotu, ir nepieciešama // klases paziņojums</span> CODOC: CODOMDOCUMENT; <span> // xmldomdocument objekts</span> Doc: Domdocument; R: ixmldomelement; Mezgls: ixmldomelement; // DomText txt: ixmldomText; // domattribute uzties: ixmldomattribute; <b>sākt.</b> <span> // DOM dokumenta izveide</span> Doc: \u003d codoc.Create; Doc.Set_async (False); <span> // sākotnējais uzsākšanas dom dokuments</span> Doc.loadXml (" <Header/>"); <span> // Domelement izveide (tag<<b>Sūtītājs.</b>>) </span> Mezgls: \u003d doc.Createelement ("sūtītājs"); <span> // teksta mezgla izveide " <b>LLC "Typhoon"</b>" </span> Txt: \u003d doc.createTextNode ("LLC" Typhoon "); <span> // mezgla piešķiršana<<b>Sūtītājs.</b>\u003e Vērtība</span> <span> // teksta mezgls " <b>LLC "Typhoon"</b>" </span> Node.appendchild (txt); <span> // vienuma pievienošana<<b>Sūtītājs.</b>\u003e dokumenta kā meitasuzņēmuma saknē</span> R.appendchild (mezgls); <span> <<b>No.</b>> </span> Mezgls: \u003d doc.Creeelement ("no"); Txt: \u003d doc.CreateTextNode ("http://tayfun.ru/xml/default.asp"); Node.appendchild (txt); R.appendchild (mezgls); <span> // līdzīgas darbības tagam<<b>Uz.</b>> </span> Mezgls: \u003d doc.Createelement ("līdz"); Txt: \u003d doc.createTextnode ("http://irbis.ru"); Node.appendchild (txt); R.appendchild (mezgls); <span> // izveidot domelementu ()</span> Mezgls: \u003d doc.Creeelement ("Typedocument"); <span> // xmldomattribute mezgla izveide</span> Att: \u003d doc.Createattribute ("ID", "pasūtījums"); <span> // <TypeDocument Id="Order"/> </span> Node.appendchild (ATT); R.appendchild (mezgls); <b>beigas;</b> <p>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).</p> <p>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ā.</p> <img src='https://i0.wp.com/codenet.ru/np-includes/upload/2005/01/05/128662.gif' height="116" width="298" loading=lazy loading=lazy><br>5. attēls. <p><img src='https://i0.wp.com/codenet.ru/np-includes/upload/2005/01/05/128664.gif' height="179" width="385" loading=lazy loading=lazy><br>6. attēls.</p><p>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</p> <p>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:</p> <b>Atlasīt</b> * No rēķina_general <b>Kur</b> Invoicenum \u003d: Num <b>Atlasīt</b>Preces, quulity, cena, hz_cod <b>No.</b>Preces <b>Kur</b> Invoicenum \u003d: Num <span> //: Num - parametrs, kas precizē rēķina numuru.</span> <p>Zemāk ir daļa no programmas, kas veido XML dokumenta ķermeni:</p> <b>procedūra.</b> Tthread1.Databodycreate (sūtītājs: tobject); <b>var.</b> <span> // klases un xmldomdocument</span> // codoc: codomdocument; <span> // ir jābūt globālai, visam modulim.</span> // doc: domdocument; <span> // paziņojums par domelement objektiem</span> R: ixmldomelement; // domelement; Mezgls, mezgls2: Ixmlomelement; Mezgla3, mezgls4: Ixmldomelement; // DomText txt: ixmldomText; Str: virkne; <span> // Rēķina numurs: <b>vesels skaitlis;</b> - Globālais mainīgais - // Masching 987654 // Querya, Queryb: <b>Virkne;</b> - 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)</span> <b>sākt.</b> Query.Close; <span> // Skatiet tekstu "Pieprasīt A"</span> Query.Text: \u003d querya; <span> // pieprasīt izpildi</span> Query.execsql; Query.Open; <span> // Iegūstiet sakņu elementa adresi</span> R: \u003d doc.get_documentelement; Mezgla2: \u003d dok.Creeelement ("pieprasījums"); <span> // izveidot domelement (tag)</span> Mezgls: \u003d doc.Creeelement ("rēķins"); <span> // vienuma pievienošana saknes</span> R.Appendchild (Node2); <span> // vienuma pievienošana</span> Mezgls2. Papildinājums (mezgls); <span> // izveidot domelement (tag)</span> Mezgla3: \u003d doc.Creeelement ("Depure"); <span> // vienuma pievienošana</span> Mezgls. Apbing (Node3); <span> // aicinājums uz "depurta" lauku</span> Iela: \u003d query.fieldbyname ("Depurture"). Asstring; <span> // teksta mezgla izveide \u003d lauka vērtība</span><span> // mezgla piešķiršanas vērtība</span> <span> // teksta mezgls, mainīgais iela</span> Node.appendchild (txt); <span> // līdzīgas darbības tagam <Destination>, <DataSend>, // <DataDepurture>, <Currency> // <DestinationCompany> (lauka dB "saņēmējs")</span> Mezgls: \u003d doc.Createelement ("galamērķis"); <span> // datu bāzes lauka nosaukums var nesakrīt ar nosaukumu</span> Iela: \u003d query.fieldbyname ("saņēmējs") .asString; <span> // taga, šajā lietošanas labā</span> Txt: \u003d doc.CreateTextNode (Str); <span> // Dom interfeiss pirms DBVS ar XML interfeisa atbalstu, // tipa Oracle 8i vai SQL 2000</span> Node.appendchild (txt); ... <span> // preču specifikācijas pieprasījuma veidošana</span> <span> // aizver piekļuves pieprasījumu</span> Query.Close; <span> // Skatiet tekstu "Pieprasījums", info. Par produktiem</span> Query.Text: \u003d Queryb; <span> // parametru vērtību piešķiršana</span> Query.params.Asinteger: \u003d Invoicenumber; <span> // pieprasīt izpildi</span> Query2.execsql; <span> // piekļuves atvēršana, lai pieprasītu datus</span> Query.Open; <span> // izveidot domelement (tag)</span> Mezgla3: \u003d doc.Createelement ("IMEMS"); <span> // vienuma pievienošana</span> Mezgls. Apbing (Node3); <span> // cikls visos pieprasījumos</span> <b>kamēr</b> <b>ne.</b> Eof.query. <b>darīt.</b> Sākt mezglu4: \u003d doc.Createelement ("IMEM"); <span> // vienuma pievienošana</span> Mezgls3.appendchild (NODE4); <span> // datu ģenerēšana tagam</span> Iela: \u003d query.fieldbyname ("Cena"). Asstring; Txt: \u003d doc.CreateTextNode (Str); Node.appendchild (txt); ... <span>// līdzīgas darbības tagiem <HZ_Cod>, <Quality>, <GoodName> </span> <b>beigas;</b> <b>beigas;</b> <p>Šīs procedūras rezultātā veidojas šāds XML dokumenta teksts:</p> <table width="100%"><tbody><tr><td align="middle"><br><img src='https://i2.wp.com/codenet.ru/np-includes/upload/2005/01/05/128661.gif' width="100%" loading=lazy loading=lazy></td> </tr></tbody></table><p>Open metode tiek izmantota, lai izveidotu vaicājumu. <b>IxmlhttPrequest</b>:</p> <b>procedūra.</b> 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) - parole <h2>Izveidojot servera daļu dokumentu apstrādes</h2> <p>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ē.</p> <p>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:</p> <b>procedūra.</b>Tthread1.Dataparser (sūtītājs: tobject); <b>var.</b> <span>// paziņojums par domelement objektiem</span> R, fnode: ixmldomelement; Iela, faila nosaukums: virkne; Parms: virkne; <span>// soklass paziņojums un</span> Codocxml, codocxsl, codokresult: codomdocument; <span>// xmldomdocument objekts</span> Xmldoc, xsldoc, resdoc: domdocument; <span>// httpstr: virkne; - globāls mainīgais, kas satur HTTP vaicājuma virkni</span> <b>Sākt.</b> Xmldoc: \u003d codocxml.Create; Xmldoc.loadXml (httpstr); <span> // Iegūstiet sakņu elementa adresi</span> R: \u003d doc.get_documentelement; <span> // elementa vērtības iegūšana</span> Fnode: \u003d R.Selectsinglenode ("// Typedocument"); <span> // saņemt atribūtu vērtības ID \u003d "pasūtījums"</span> Faila nosaukums: \u003d fnode.getattibute ("ID"); <span> // un veidojot faila nosaukumu order.xsl</span> Faila nosaukums: \u003d filename + ". XSL"; <span> // dokumenta izveide xsldoc</span> Xsldoc: \u003d codocxsl.Create; Xsldoc.loadXml (faila nosaukums); <span> // xmldoc dokumenta izveide</span> RezultātsDoc: \u003d codokresult.Create; <span> // sinhronās apstrādes režīma iestatīšana</span> RezultātsDoc.Set_async (FALSE); <span> // debijas pārbaudes instalēšana</span> RezultātsDoc.validateOnase: \u003d taisnība; <span> // sabrukums xmldoc ar XSL veidni</span> Xmldoc.transformnoc, resdoc (xsldoc, resdoc); <span> // mainīgais iela tiek piešķirts teksta vērtībai</span> <span> // Iegūtais dokuments.</span> Iela: \u003d rezultātsDoc.text; <span> // Meklēšanas elements</span> Fnode: \u003d R.Selectsinglenode ("// Invoicenumber"); <span> // un iegūt elementa vērtību</span> Parms: \u003d fnode.Text; <span> // aizver piekļuves pieprasījumu</span> Query.Close; Query.Text: \u003d str; <span> // parametra vērtības piešķiršana</span> Query.params.asstring: \u003d Parm; <span> // pieprasīt izpildi</span> Query.execsql; <b>beigas;</b> <p>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.</p> <p>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.</p><p> <!-- файл Order.xsl --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <xsl:for-each select="//header"> Ievietojiet TABREG (no, Typedoc, ķermeņa) vērtībām (" <xsl:value-of select="from" />", "<xsl:value-of select="to" />", "<xsl:value-of select="TypeDocument/@id" />") </xsl:for-each> <xsl:for-each select="//item"> Ievietot preces (Invoicenumber, nosaukums, cenu, kvalitātes) vērtības (": num", " <xsl:value-of select="name" />", "<xsl:value-of select="price" />", "<xsl:value-of select="quality" /> ") </xsl:for-each> </xsl:template> </xsl:stylesheet> </p><p>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.</p> <p>Vēl viena rakstīšanas iezīme jāatzīmē iespēja izmantot SQL parametru <b>: Num.</b> 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:</p><h2>Īsi par XSL</h2> <p>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:</p> <ul><li>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.</li><li>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.</li> </ul><p>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ā.</p> <p>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:</p> <table cellspacing="0" cellpadding="4" width="500" border="1"><tbody><tr><td valign="top" width="31%"> <b>XSL direktīva</b> </td><th align="middle" width="69%"> <b>apraksts</b> </th> </tr><tr><td>xSL: uzklājiet veidnes</td> <td>Direktīva, norādot piemērotu veidņu atribūtu atlasīt \u003d "veidnes nosaukums"</td> </tr><tr><td>xSL: atribūts.</td> <td>izveido atribūtu koku un pievieno to izejas elementam, nosaukumam \u003d "atribūta nosaukums" parametrs, NameSpace - URI uz nosaukumvietas (NameSpace prefiksu)</td> </tr><tr><td>xSL: zvanu veidne</td> <td>izraisa veidni, atribūtu nosaukumu \u003d "URI uz veidni"</td> </tr><tr><td>xSL: izvēlēties. <br>xSL: kad. <br>xSL: Pretējā gadījumā.</td> <td>izvēloties ar nosacījumu XSL: kad expr \u003d "aprēķinot izteiksmi uz skriptu", <br>valoda \u003d "valodas nosaukums" <br>tests \u003d "aprēķināta izteiksme"</td> </tr><tr><td>xSL: Komentārs</td> <td>izveido komentāru par izejas dokumentu</td> </tr><tr><td>xSL: Kopēt <br>xSL: kopija</td> <td>kopē pašreizējo mezglu izvades avotā vai ievieto dokumenta fragmentu uz mezglu, kur atlasītais atribūts atlasīt \u003d "Source mezgla nosaukums"</td> </tr><tr><td>xSL: elements</td> <td>izveido izejas elementu pēc nosaukuma, atribūta nosaukums \u003d "Elementa nosaukums", NameSpace \u003d "URI atsauce uz Namespace"</td> </tr><tr><td>xSL: katram</td> <td>atkārtoti lietojiet veidni visiem mezglu saraksta mezgliem, izvēlieties Atribūts nosaka mezglu sarakstu.</td> </tr><tr><td>xSL: ja.</td> <td>nosacījumu pārbaudi nosaka testa atribūts kā izteiksme</td> </tr><tr><td>xSL: ietver</td> <td>ietver ārējo veidni, atribūts href \u003d "URI atsauce"</td> </tr><tr><td>xSL: izeja</td> <td>norāda produkcijas rezultātu, atribūtam var būt "XML", "HTML" vai "Teksts"</td> </tr><tr><td>xSL: param</td> <td>norāda parametru vērtību, atribūtu nosaukumu \u003d "Parametra nosaukumu", izvēlieties \u003d "Value"</td> </tr><tr><td>xSL: apstrādes instrukcija</td> <td>izveido instrukcijas apstrādei, atribūta nosaukumam \u003d "Nosaukuma procesa instrukcijas"</td> </tr><tr><td>xSL: Kārtot.</td> <td>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šā")</td> </tr><tr><td>xSL: Stylesheet.</td> <td>definē XSL veidnes dokumentu, ir XSLT sakņu elements</td> </tr><tr><td>xSL: veidne.</td> <td>norāda XSL veidni, nosaukumu \u003d "URI prefiksu atribūts uz veidnes nosaukumu", Match \u003d "Piezīme mezglam, kurai piemēro veidni"</td> </tr><tr><td>xSL: teksts.</td> <td>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</td> </tr><tr><td>xSL: vērtība</td> <td>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</td> </tr><tr><td>xSL: mainīgais</td> <td>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"</td> </tr><tr><td>xSL: ar param</td> <td>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 "."</td> </tr></tbody></table><h2>Secinājums</h2> <p>Visbeidzot, jāatzīmē, ka, izmantojot standarta XML parsētāju <i>msxml.dll</i>tas nav vienīgais līdzeklis, lai analizētu un veidotu XML dokumentus. Piemēram, lai izveidotu XML dokumentus, lai efektīvi izmantotu komponentus <b>Tpageproduser.</b>un <b>Ttableproduser.</b>. Bet šis raksts tikai uzsver plašumu un iespēju piemērot DOM modeli praksē.</p> <p>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.</p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> <div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div> </div> <footer> <div class="td-block-row td-post-next-prev"> <div class="td-block-span6 td-post-prev-post"> <div class="td-post-next-prev-content"><span>Iepriekšējais raksts</span><a href="https://obanracer.ru/lv/zagovor-na-udachu-pered-sudom.html">Sazvērestība labu veiksmi</a></div> </div> <!-- /next_post --> <div class="td-next-prev-separator"></div> <div class="td-block-span6 td-post-next-post"> <div class="td-post-next-prev-content"><span>Nākamais raksts</span><a href="https://obanracer.ru/lv/vychislit-beglecov-kak-uznat-kto-otpisalsya-v-instagrame-kak.html">Kā uzzināt, kurš atgādina Instagram?</a></div> <!-- /next_post --> </div> </div> <div class="td-author-name vcard author" style="display: none"><span class="fn"><a href="https://obanracer.ru/lv/author/iulia">Yulia</a></span></div> <span style="display: none;" itemprop="author" itemscope itemtype="https://schema.org/Person"><meta itemprop="name" content="Юлия"></span> <meta itemprop="datePublished" content="2016-05-16T15:47:37+00:00"> <meta itemprop="dateModified" content="2016-10-25T16:54:41+00:00"> <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="/other/kak-zavyazat-galstuk-foto-poshagovo.html" /><span style="display: none;" itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><span style="display: none;" itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="//obanracer.ru/wp-content/uploads/2017/01/logo-300x100.png"></span> <meta itemprop="name" content="Мой секрет"> </span> <meta itemprop="headline " content="Как завязать галстук пошагово фото"><span style="display: none;" itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="/wp-content/uploads/2016/05/1-19.jpg"><meta itemprop="width" content="640"><meta itemprop="height" content="450"></span> </footer> </article> <div class="td_block_wrap td_block_related_posts td_uid_3_5a236fb03c961_rand td_with_ajax_pagination td-pb-border-top td_block_template_1" data-td-block-uid="td_uid_3_5a236fb03c961" ><script>var block_td_uid_3_5a236fb03c961 = new tdBlock(); block_td_uid_3_5a236fb03c961.id = "td_uid_3_5a236fb03c961"; block_td_uid_3_5a236fb03c961.atts = '{ "limit":9,"sort":"","post_ids":"","tag_slug":"","autors_id":"","installed_post_types":"","category_id":"","category_ids":"","custom_title":"","custom_url":"","show_child_cat":"","sub_cat_ajax":"","ajax_pagination":"next_prev","header_color":"","header_text_color":"","ajax_pagination_infinite_stop":"","td_column_number":3,"td_ajax_preloading":"","td_ajax_filter_type":"td_custom_related","td_ajax_filter_ids":"","td_filter_default_txt":"\u0412\u0441\u0435","color_preset":"","border_top":"","class":"td_uid_3_5a236fb03c961_rand","el_class":"","offset":"","css":"","tdc_css":"","tdc_css_class":"td_uid_3_5a236fb03c961_rand","live_filter":"cur_post_same_categories","live_filter_cur_post_id":10046,"live_filter_cur_post_author":"694350","block_template_id":""} '; block_td_uid_3_5a236fb03c961.td_column_number = "3"; block_td_uid_3_5a236fb03c961.block_type = "td_block_related_posts"; block_td_uid_3_5a236fb03c961.post_count = "9"; block_td_uid_3_5a236fb03c961.found_posts = "26"; block_td_uid_3_5a236fb03c961.header_color = ""; block_td_uid_3_5a236fb03c961.ajax_pagination_infinite_stop = ""; block_td_uid_3_5a236fb03c961.max_num_pages = "3"; tdBlocksArray.push(block_td_uid_3_5a236fb03c961); </script><h4 class="td-related-title td-block-title"><a id="td_uid_4_5a236fb03e35d" class="td-related-left td-cur-simple-item" data-td_filter_value="" data-td_block_id="td_uid_3_5a236fb03c961" href="#">Līdzīgi izstrādājumi</a></h4><div id=td_uid_3_5a236fb03c961 class="td_block_inner"> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/neprivyazannyi-dzheilbreik-dlya-iphone-3gs-processy-kotorye-mozhno.html" rel="bookmark" title="Procesi, kurus var noņemt bez sekām"><img width="218" height="150" class="entry-thumb" src="/uploads/23fbf661e54bd7f35238b2ef27e09984.jpg" alt="Procesi, kurus var noņemt bez sekām" title="Procesi, kurus var noņemt bez sekām"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/lv/category/more/" class="td-post-category">Citi</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/neprivyazannyi-dzheilbreik-dlya-iphone-3gs-processy-kotorye-mozhno.html" rel="bookmark" title="Procesi, kurus var noņemt bez sekām">Procesi, kurus var noņemt bez sekām</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/napominanie-na-ekrane-blokirovki-aifon-kak-zastavit-iphone-napominat-o-dnyah.html" rel="bookmark" title="Kā padarīt iPhone atgādinājumu par dzimšanas dienām"><img width="218" height="150" class="entry-thumb" src="/uploads/7e4f8c7f13e743a68b384005e36645e9.jpg" alt="Kā padarīt iPhone atgādinājumu par dzimšanas dienām" title="Kā padarīt iPhone atgādinājumu par dzimšanas dienām"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/lv/category/monitors/" class="td-post-category">Monitori</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/napominanie-na-ekrane-blokirovki-aifon-kak-zastavit-iphone-napominat-o-dnyah.html" rel="bookmark" title="Kā padarīt iPhone atgādinājumu par dzimšanas dienām">Kā padarīt iPhone atgādinājumu par dzimšanas dienām</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/umnye-chasy-xiaomi-kakie-vybrat-umnye-chasy-ot-xiaomi-obzor-modelei.html" rel="bookmark" title="Smart Watch no Xiaomi - modeļa pārskats"><img width="218" height="150" class="entry-thumb" src="/uploads/7e54ad2b31106399ae294f67567f954b.jpg" alt="Smart Watch no Xiaomi - modeļa pārskats" title="Smart Watch no Xiaomi - modeļa pārskats"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/lv/category/windows-8/" class="td-post-category">Windows 8.</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/umnye-chasy-xiaomi-kakie-vybrat-umnye-chasy-ot-xiaomi-obzor-modelei.html" rel="bookmark" title="Smart Watch no Xiaomi - modeļa pārskats">Smart Watch no Xiaomi - modeļa pārskats</a></h3> </div> </div> </div> </div> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/efirnoe-efirnoe-televidenie-chastoty-efirnogo-cifrovogo.html" rel="bookmark" title="Būtiskā digitālā televīzijas televīzija Baltkrievijā"><img width="218" height="150" class="entry-thumb" src="/uploads/bbc71c892b51f2ffb166d4240699a0cf.jpg" alt="Būtiskā digitālā televīzijas televīzija Baltkrievijā" title="Būtiskā digitālā televīzijas televīzija Baltkrievijā"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/lv/category/case/" class="td-post-category">Korpuss</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/efirnoe-efirnoe-televidenie-chastoty-efirnogo-cifrovogo.html" rel="bookmark" title="Būtiskā digitālā televīzijas televīzija Baltkrievijā">Būtiskā digitālā televīzijas televīzija Baltkrievijā</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/kak-rabotaet-touch-id-na-iphone-6s-iphone-bez-touch-id-chto-eto-i-stoit-li-pokupat-sposoby.html" rel="bookmark" title="IPhone bez skārieniem ID - kas ir vērts iegādāties?"><img width="218" height="150" class="entry-thumb" src="/uploads/34f3c386fcb7fd0e268d6668e7d86084.jpg" alt="IPhone bez skārieniem ID - kas ir vērts iegādāties?" title="IPhone bez skārieniem ID - kas ir vērts iegādāties?"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/lv/category/windows-7/" class="td-post-category">Windows 7.</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/kak-rabotaet-touch-id-na-iphone-6s-iphone-bez-touch-id-chto-eto-i-stoit-li-pokupat-sposoby.html" rel="bookmark" title="IPhone bez skārieniem ID - kas ir vērts iegādāties?">IPhone bez skārieniem ID - kas ir vērts iegādāties?</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/sboi-pri-obnovlenii-ios-sboi-prilozheniya-ios-pri-obnovlenii-sboi-pri.html" rel="bookmark" title="IOS pieteikuma neveiksme, atjauninot"><img width="218" height="150" class="entry-thumb" src="/uploads/cb82569b356a94472d2a1ec045ea6a13.jpg" alt="IOS pieteikuma neveiksme, atjauninot" title="IOS pieteikuma neveiksme, atjauninot"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/lv/category/more/" class="td-post-category">Citi</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/sboi-pri-obnovlenii-ios-sboi-prilozheniya-ios-pri-obnovlenii-sboi-pri.html" rel="bookmark" title="IOS pieteikuma neveiksme, atjauninot">IOS pieteikuma neveiksme, atjauninot</a></h3> </div> </div> </div> </div> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/kak-zastavit-iphone-napominat-o-dnyah-rozhdeniya-opredelyaem-vozrast-iphone.html" rel="bookmark" title="Mēs definējam iPhone iPhone 10 vecumu jūsu dzimšanas dienā"><img width="218" height="150" class="entry-thumb" src="/uploads/dd3f20febdb184deba35fca972a88ac3.jpg" alt="Mēs definējam iPhone iPhone 10 vecumu jūsu dzimšanas dienā" title="Mēs definējam iPhone iPhone 10 vecumu jūsu dzimšanas dienā"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/lv/category/graphics-card/" class="td-post-category">Videokarte</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/kak-zastavit-iphone-napominat-o-dnyah-rozhdeniya-opredelyaem-vozrast-iphone.html" rel="bookmark" title="Mēs definējam iPhone iPhone 10 vecumu jūsu dzimšanas dienā">Mēs definējam iPhone iPhone 10 vecumu jūsu dzimšanas dienā</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/mobilnyi-mts-internet-telefona-belarus-nastroiki-interneta-mts.html" rel="bookmark" title="Interneta iestatījumi MTS Baltkrievija: automātiska un manuāli"><img width="218" height="150" class="entry-thumb" src="/uploads/f99d0894ccfc86df53143f3c702c1540.jpg" alt="Interneta iestatījumi MTS Baltkrievija: automātiska un manuāli" title="Interneta iestatījumi MTS Baltkrievija: automātiska un manuāli"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/lv/category/security/" class="td-post-category">Drošība</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/mobilnyi-mts-internet-telefona-belarus-nastroiki-interneta-mts.html" rel="bookmark" title="Interneta iestatījumi MTS Baltkrievija: automātiska un manuāli">Interneta iestatījumi MTS Baltkrievija: automātiska un manuāli</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/kreplenie-v-mashinu-dlya-ipad-mini-ustanovka-plansheta-apple-ipad-v.html" rel="bookmark" title="Apple Apple tabletes instalēšana auto automobiļu turētājiem iPad mini"><img width="218" height="150" class="entry-thumb" src="/uploads/7e172512bc7cb3b2dcb847c4193eb965.jpg" alt="Apple Apple tabletes instalēšana auto automobiļu turētājiem iPad mini" title="Apple Apple tabletes instalēšana auto automobiļu turētājiem iPad mini"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/lv/category/ram/" class="td-post-category">Ram</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/kreplenie-v-mashinu-dlya-ipad-mini-ustanovka-plansheta-apple-ipad-v.html" rel="bookmark" title="Apple Apple tabletes instalēšana auto automobiļu turētājiem iPad mini">Apple Apple tabletes instalēšana auto automobiļu turētājiem iPad mini</a></h3> </div> </div> </div> </div></div></div> </div> </div> <div class="td-pb-span4 td-main-sidebar"> <div class="td-ss-main-sidebar"> <aside class="widget �lambda_169101"> <div style="margin:10px 0"> </div> </aside> <div class="td_block_wrap td_block_1 td_block_widget td_uid_2_5a23c04f0cdc0_rand td-pb-border-top td_block_template_1 td-column-1" data-td-block-uid="td_uid_2_5a23c04f0cdc0"> <div class="td-block-title-wrap"> <h4 class="block-title"><span class="td-pulldown-size">Ieteicams</span></h4> </div> <div id=td_uid_2_5a23c04f0cdc0 class="td_block_inner"> <div class="td-block-span12"> <div class="td_module_4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/meizu-m3-note-32gb-kitaiskaya-versiya-obzor-smartfona-meizu-m3-note-otshlifovannyi-fablet.html" rel="bookmark" title="MEIZU M3 PIEZĪME Viedtālrunis Pārskats: satverams fablets"><img width="324" height="235" class="entry-thumb" src="/uploads/17d7e5056d4244743cc81bbe7cfa61d3.jpg" alt="MEIZU M3 PIEZĪME Viedtālrunis Pārskats: satverams fablets" title="MEIZU M3 PIEZĪME Viedtālrunis Pārskats: satverams fablets"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/lv/category/windows-7/" class="td-post-category">Windows 7.</a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/meizu-m3-note-32gb-kitaiskaya-versiya-obzor-smartfona-meizu-m3-note-otshlifovannyi-fablet.html" rel="bookmark" title="MEIZU M3 PIEZĪME Viedtālrunis Pārskats: satverams fablets">MEIZU M3 PIEZĪME Viedtālrunis Pārskats: satverams fablets</a></h3> <div class="td-module-meta-info"> </div> <div class="td-excerpt"> M3 Ņemiet vērā, ka ir grūti pateikt, ka viņš ir ražojis Ķīnas uzņēmums. Pārsteidzoši, šis modelis, pēc pircējiem, tiek uzskatīts par neapstrīdamu uzvarētāju ...</div> </div> <!-- /next_post --> </div> <div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/budet-li-novyi-ipad-mini-5-planshety-apple-ipad-rezyume-po-besprovodnoi.html" rel="bookmark" title="Vai būs jauns iPad mini 5"><img width="100" height="70" class="entry-thumb" src="/uploads/73f5cfb31e3a0a4532025471ac372dd5.jpg" alt="Vai būs jauns iPad mini 5" title="Vai būs jauns iPad mini 5"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/budet-li-novyi-ipad-mini-5-planshety-apple-ipad-rezyume-po-besprovodnoi.html" rel="bookmark" title="Vai būs jauns iPad mini 5">Vai būs jauns iPad mini 5</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/lv/category/processors/" class="td-post-category">Procesori</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/kogda-vyhodit-v-prodazhu-novyi-aifon-se-stoit-li-pokupat-novyi-apple-iphone-se.html" rel="bookmark" title="Vai man vajadzētu iegādāties jaunu Apple iPhone SE?"><img width="100" height="70" class="entry-thumb" src="/uploads/553302888cb211563f0f82ae6b12486f.jpg" alt="Vai man vajadzētu iegādāties jaunu Apple iPhone SE?" title="Vai man vajadzētu iegādāties jaunu Apple iPhone SE?"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/kogda-vyhodit-v-prodazhu-novyi-aifon-se-stoit-li-pokupat-novyi-apple-iphone-se.html" rel="bookmark" title="Vai man vajadzētu iegādāties jaunu Apple iPhone SE?">Vai man vajadzētu iegādāties jaunu Apple iPhone SE?</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/lv/category/power-supply/" class="td-post-category">Barošanas avoti</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/aifon-se-otklyuchaetsya-na-moroze-iphone-vyklyuchaetsya-na-moroze-pochemu-i.html" rel="bookmark" title="IPhone izslēdzas uz sala: kāpēc un ko darīt?"><img width="100" height="70" class="entry-thumb" src="/uploads/a6cb8c3a7a98e35f35152d66cb837eb2.jpg" alt="IPhone izslēdzas uz sala: kāpēc un ko darīt?" title="IPhone izslēdzas uz sala: kāpēc un ko darīt?"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/aifon-se-otklyuchaetsya-na-moroze-iphone-vyklyuchaetsya-na-moroze-pochemu-i.html" rel="bookmark" title="IPhone izslēdzas uz sala: kāpēc un ko darīt?">IPhone izslēdzas uz sala: kāpēc un ko darīt?</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/lv/category/graphics-card/" class="td-post-category">Videokarte</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/dobavlenie-i-zapros-uvedomlenii-o-prochtenii-i-uvedomlenii-o-dostavke-ne.html" rel="bookmark" title="Nesūtiet SMS un IMessage ar iPhone?"><img width="100" height="70" class="entry-thumb" src="/uploads/288a43d6e226af8d27025ce096640057.jpg" alt="Nesūtiet SMS un IMessage ar iPhone?" title="Nesūtiet SMS un IMessage ar iPhone?"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/dobavlenie-i-zapros-uvedomlenii-o-prochtenii-i-uvedomlenii-o-dostavke-ne.html" rel="bookmark" title="Nesūtiet SMS un IMessage ar iPhone?">Nesūtiet SMS un IMessage ar iPhone?</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/lv/category/the-winchesters/" class="td-post-category">Winchester</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/zhesty-upravleniya-airpods-kak-podklyuchit-airpods-k-android-i-stoit-li-eto.html" rel="bookmark" title="Kā savienot AirPods uz Android, un tas ir vērts to darīt?"><img width="100" height="70" class="entry-thumb" src="/uploads/591a8735ec005524920525e8d910a1ec.jpg" alt="Kā savienot AirPods uz Android, un tas ir vērts to darīt?" title="Kā savienot AirPods uz Android, un tas ir vērts to darīt?"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/zhesty-upravleniya-airpods-kak-podklyuchit-airpods-k-android-i-stoit-li-eto.html" rel="bookmark" title="Kā savienot AirPods uz Android, un tas ir vērts to darīt?">Kā savienot AirPods uz Android, un tas ir vērts to darīt?</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/lv/category/more/" class="td-post-category">Citi</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/kak-uluchshit-razgovornyi-dinamik-v-aifon-7-u-aifon-stal-tihii-dinamik.html" rel="bookmark" title="IPhone ir kļuvis kluss runātājs - kāpēc skaņa ir nedzirdīga"><img width="100" height="70" class="entry-thumb" src="/uploads/fd6b8fce6d99665dc2f3e1fe5abfd25d.jpg" alt="IPhone ir kļuvis kluss runātājs - kāpēc skaņa ir nedzirdīga" title="IPhone ir kļuvis kluss runātājs - kāpēc skaņa ir nedzirdīga"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/kak-uluchshit-razgovornyi-dinamik-v-aifon-7-u-aifon-stal-tihii-dinamik.html" rel="bookmark" title="IPhone ir kļuvis kluss runātājs - kāpēc skaņa ir nedzirdīga">IPhone ir kļuvis kluss runātājs - kāpēc skaņa ir nedzirdīga</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/lv/category/internet/" class="td-post-category">internets</a> </div> </div> </div> </div> </div> </div> </div> <aside class="widget_text td_block_template_1 widget widget_custom_html"> <div class="textwidget custom-html-widget"> </div> </aside> </div> </div> </div> </div> </div> <div class="td-footer-wrapper td-container-wrap "> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span12"> </div> </div> <div class="td-pb-row"> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_11_5a23980e76adb_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_11_5a23980e76adb" > <div class="td-block-title-wrap"></div><div id=td_uid_11_5a23980e76adb class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/pochemu-aifon-rabotaet-bez-zvuka-propal-zvuk-na-iphone-pri-zvonke-proigryvanii-muzyki-prichiny-po.html" rel="bookmark" title="Skaņu skaņa uz iPhone - zvanot, spēlējot mūziku"><img width="218" height="150" class="entry-thumb" src="/uploads/9b3e44117f8fe6abbc9736143c9d6aa7.jpg" alt="Skaņu skaņa uz iPhone - zvanot, spēlējot mūziku" title="Skaņu skaņa uz iPhone - zvanot, spēlējot mūziku"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/pochemu-aifon-rabotaet-bez-zvuka-propal-zvuk-na-iphone-pri-zvonke-proigryvanii-muzyki-prichiny-po.html" rel="bookmark" title="Skaņu skaņa uz iPhone - zvanot, spēlējot mūziku">Skaņu skaņa uz iPhone - zvanot, spēlējot mūziku</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/ne-pribavlyaetsya-zvuk-na-iphone-na-iphone-propal-zvuk-chto-delat.html" rel="bookmark" title="Uz iPhone skanēja skaņu - ko darīt"><img width="218" height="150" class="entry-thumb" src="/uploads/a5c50732ead816a981057ab45ba73f84.jpg" alt="Uz iPhone skanēja skaņu - ko darīt" title="Uz iPhone skanēja skaņu - ko darīt"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/ne-pribavlyaetsya-zvuk-na-iphone-na-iphone-propal-zvuk-chto-delat.html" rel="bookmark" title="Uz iPhone skanēja skaņu - ko darīt">Uz iPhone skanēja skaņu - ko darīt</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/obshchie-akkaunty-dlya-ios-obshchii-akkaunt-app-store---plyusy-i-minusy-preimushchestva-i.html" rel="bookmark" title="Vispārējā konta App Store - Plusi un mīnusi"><img width="218" height="150" class="entry-thumb" src="/uploads/a072135ded56dbcfd3b20add8abfc60c.jpg" alt="Vispārējā konta App Store - Plusi un mīnusi" title="Vispārējā konta App Store - Plusi un mīnusi"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/obshchie-akkaunty-dlya-ios-obshchii-akkaunt-app-store---plyusy-i-minusy-preimushchestva-i.html" rel="bookmark" title="Vispārējā konta App Store - Plusi un mīnusi">Vispārējā konta App Store - Plusi un mīnusi</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/vernut-prilozhenie-yutub-pochemu-ne-rabotaet-youtube-na-televizore-i-kak.html" rel="bookmark" title="Kāpēc ne palaist YouTube televīzijā un kā atjaunot pieteikumu"><img width="218" height="150" class="entry-thumb" src="/uploads/c8edc9e817aa04c95cfe02b78f75416b.jpg" alt="Kāpēc ne palaist YouTube televīzijā un kā atjaunot pieteikumu" title="Kāpēc ne palaist YouTube televīzijā un kā atjaunot pieteikumu"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/vernut-prilozhenie-yutub-pochemu-ne-rabotaet-youtube-na-televizore-i-kak.html" rel="bookmark" title="Kāpēc ne palaist YouTube televīzijā un kā atjaunot pieteikumu">Kāpēc ne palaist YouTube televīzijā un kā atjaunot pieteikumu</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/obzor-funkcii-apple-watch-kakie-funkcii-est-v-apple-watch-otkryt-punkt.html" rel="bookmark" title="Kādas funkcijas ir Apple skatīties?"><img width="218" height="150" class="entry-thumb" src="/uploads/5479a7dbc116d858e12df39df8a5a0c4.jpg" alt="Kādas funkcijas ir Apple skatīties?" title="Kādas funkcijas ir Apple skatīties?"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/obzor-funkcii-apple-watch-kakie-funkcii-est-v-apple-watch-otkryt-punkt.html" rel="bookmark" title="Kādas funkcijas ir Apple skatīties?">Kādas funkcijas ir Apple skatīties?</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/watch-ne-sinhroniziruetsya-s-uksusom-pervoe-vklyuchenie-i-nastroika-apple-watch.html" rel="bookmark" title="Ābolu pulksteņa pirmā iekļaušana un konfigurācija"><img width="218" height="150" class="entry-thumb" src="/uploads/0f13b918b5c5cfefb92dcc580203b41e.jpg" alt="Ābolu pulksteņa pirmā iekļaušana un konfigurācija" title="Ābolu pulksteņa pirmā iekļaušana un konfigurācija"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/watch-ne-sinhroniziruetsya-s-uksusom-pervoe-vklyuchenie-i-nastroika-apple-watch.html" rel="bookmark" title="Ābolu pulksteņa pirmā iekļaušana un konfigurācija">Ābolu pulksteņa pirmā iekļaušana un konfigurācija</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div> </div> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_12_5a23980e79990_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_12_5a23980e79990" > <div class="td-block-title-wrap"></div><div id=td_uid_12_5a23980e79990 class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/smartfony-htc-novinki-smartfonov-htc-berut-ne-kolichestvom-no.html" rel="bookmark" title="Jauni HTC viedtālruņi - netiek veikti ar daudzumu, bet kvalitāti"><img width="218" height="150" class="entry-thumb" src="/uploads/e2820569a6dbc1bfff5020087968a4e7.jpg" alt="Jauni HTC viedtālruņi - netiek veikti ar daudzumu, bet kvalitāti" title="Jauni HTC viedtālruņi - netiek veikti ar daudzumu, bet kvalitāti"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/smartfony-htc-novinki-smartfonov-htc-berut-ne-kolichestvom-no.html" rel="bookmark" title="Jauni HTC viedtālruņi - netiek veikti ar daudzumu, bet kvalitāti">Jauni HTC viedtālruņi - netiek veikti ar daudzumu, bet kvalitāti</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/moi-fotopotok-na-iphone-chto-eto-takoe-kak-nastroit-prosmotret-vyklyuchit-i-t-d.html" rel="bookmark" title="Mani foto sīktēli iPhone: Kas tas ir, kā konfigurēt, skatīt, izslēgt un t"><img width="218" height="150" class="entry-thumb" src="/uploads/6c8c939ab02a71ed957f8b4f0cd6ee3c.jpg" alt="Mani foto sīktēli iPhone: Kas tas ir, kā konfigurēt, skatīt, izslēgt un t" title="Mani foto sīktēli iPhone: Kas tas ir, kā konfigurēt, skatīt, izslēgt un t"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/moi-fotopotok-na-iphone-chto-eto-takoe-kak-nastroit-prosmotret-vyklyuchit-i-t-d.html" rel="bookmark" title="Mani foto sīktēli iPhone: Kas tas ir, kā konfigurēt, skatīt, izslēgt un t">Mani foto sīktēli iPhone: Kas tas ir, kā konfigurēt, skatīt, izslēgt un t</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/kak-ubrat-carapiny-s-ekrana-apple-watch-luchshie-chehly-bampery-i-zashchitnye.html" rel="bookmark" title="Labākie vāki, buferi un aizsargplēves Apple skatīties"><img width="218" height="150" class="entry-thumb" src="/uploads/c0f36afb2993bbd1c977fc747f8e43fd.jpg" alt="Labākie vāki, buferi un aizsargplēves Apple skatīties" title="Labākie vāki, buferi un aizsargplēves Apple skatīties"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/kak-ubrat-carapiny-s-ekrana-apple-watch-luchshie-chehly-bampery-i-zashchitnye.html" rel="bookmark" title="Labākie vāki, buferi un aizsargplēves Apple skatīties">Labākie vāki, buferi un aizsargplēves Apple skatīties</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/teleport-prilozhenie-dlya-ios-teleport-fotoredaktor-dlya-kompyutera.html" rel="bookmark" title="Teleport foto redaktors datoram krievu valodā"><img width="218" height="150" class="entry-thumb" src="/uploads/5d6eb67fa6aae1388d0ee175f56ff119.jpg" alt="Teleport foto redaktors datoram krievu valodā" title="Teleport foto redaktors datoram krievu valodā"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/teleport-prilozhenie-dlya-ios-teleport-fotoredaktor-dlya-kompyutera.html" rel="bookmark" title="Teleport foto redaktors datoram krievu valodā">Teleport foto redaktors datoram krievu valodā</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/android-ubrat-beidzh-na-znachke-nastroiki-tvik-confero-spryachet.html" rel="bookmark" title="Confero kniebiens slēpj nozīmītes paziņojumus"><img width="218" height="150" class="entry-thumb" src="/uploads/52117d44e9df14fe798eebe29eac2c3e.jpg" alt="Confero kniebiens slēpj nozīmītes paziņojumus" title="Confero kniebiens slēpj nozīmītes paziņojumus"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/android-ubrat-beidzh-na-znachke-nastroiki-tvik-confero-spryachet.html" rel="bookmark" title="Confero kniebiens slēpj nozīmītes paziņojumus">Confero kniebiens slēpj nozīmītes paziņojumus</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/kurortnyi-pos-lok-kalifeya-halkidiki-opisanie-i-otzyv-kalifeya.html" rel="bookmark" title="Resort Village Califai"><img width="218" height="150" class="entry-thumb" src="/uploads/7126c0c3bb510239975ca7cf7241f681.jpg" alt="Resort Village Califai" title="Resort Village Califai"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/kurortnyi-pos-lok-kalifeya-halkidiki-opisanie-i-otzyv-kalifeya.html" rel="bookmark" title="Resort Village Califai">Resort Village Califai</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div> </div> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_13_5a23980e7caa8_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_13_5a23980e7caa8" > <div class="td-block-title-wrap"></div><div id=td_uid_13_5a23980e7caa8 class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/kallifeya-greciya-opisanie-krasivye-vidy-kallifei-gde-mozhno.html" rel="bookmark" title="Kallithea Grieķija Apraksts"><img width="218" height="150" class="entry-thumb" src="/uploads/9286ffcd8ccabecf8ec8eaada63961d4.jpg" alt="Kallithea Grieķija Apraksts" title="Kallithea Grieķija Apraksts"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/kallifeya-greciya-opisanie-krasivye-vidy-kallifei-gde-mozhno.html" rel="bookmark" title="Kallithea Grieķija Apraksts">Kallithea Grieķija Apraksts</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/kak-v-mainkrafte-zarabatyvat-dengi-sozdanie-kart-hosting.html" rel="bookmark" title="Kā"Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги"><img width="218" height="150" class="entry-thumb" src="/uploads/afcbce1b7e914af6ae122d25f02ce1cc.jpg" alt="Kā"Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги" title="Kā"Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/kak-v-mainkrafte-zarabatyvat-dengi-sozdanie-kart-hosting.html" rel="bookmark" title="Kā"Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги">Kā pelnīt naudu Minecraft: kartes, servera hostings un resursu pārdošana Kā pelnīt naudu Minecraftā Real Money</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/kak-polzovatsya-skaipom-na-kompyutere-poshagovaya-instrukciya-kak-ustanovit.html" rel="bookmark" title="Kā instalēt"скайп" на телефон и пользоваться им"><img width="218" height="150" class="entry-thumb" src="/uploads/f3dcf86cee739b27674f98cb9a246126.jpg" alt="Kā instalēt"скайп" на телефон и пользоваться им" title="Kā instalēt"скайп" на телефон и пользоваться им"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/kak-polzovatsya-skaipom-na-kompyutere-poshagovaya-instrukciya-kak-ustanovit.html" rel="bookmark" title="Kā instalēt"скайп" на телефон и пользоваться им">Kā instalēt "Skype" tālrunī un izmantot to</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/chto-uchit-programmistu-obuchenie-programmirovaniyu-s-nulya-poshagovoe.html" rel="bookmark" title="Mācīšanās programmēšana no Scratch - soli pa solim iesācējiem"><img width="218" height="150" class="entry-thumb" src="/uploads/6dd3b3707e9f1aed620f6871d2d743b2.jpg" alt="Mācīšanās programmēšana no Scratch - soli pa solim iesācējiem" title="Mācīšanās programmēšana no Scratch - soli pa solim iesācējiem"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/chto-uchit-programmistu-obuchenie-programmirovaniyu-s-nulya-poshagovoe.html" rel="bookmark" title="Mācīšanās programmēšana no Scratch - soli pa solim iesācējiem">Mācīšanās programmēšana no Scratch - soli pa solim iesācējiem</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/kto-sozdal-pervyi-arifmometr-v-1672-godu-cifrovaya-melnica-xvii-veka.html" rel="bookmark" title="XVII gadsimta digitālās dzirnavas"><img width="218" height="150" class="entry-thumb" src="/uploads/9ea1055fe470170f4295195302ca43f4.jpg" alt="XVII gadsimta digitālās dzirnavas" title="XVII gadsimta digitālās dzirnavas"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/kto-sozdal-pervyi-arifmometr-v-1672-godu-cifrovaya-melnica-xvii-veka.html" rel="bookmark" title="XVII gadsimta digitālās dzirnavas">XVII gadsimta digitālās dzirnavas</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/lv/otkryt-levoe-menyu-fudzheira-otkryt-levoe-menyu-fudzheira-pravila.html" rel="bookmark" title="Atveriet kreiso izvēlni Fujairah noteikumus Fujairas emirātā"><img width="218" height="150" class="entry-thumb" src="/uploads/db0aa0723ea5b33d175084cf050525c7.jpg" alt="Atveriet kreiso izvēlni Fujairah noteikumus Fujairas emirātā" title="Atveriet kreiso izvēlni Fujairah noteikumus Fujairas emirātā"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/lv/otkryt-levoe-menyu-fudzheira-otkryt-levoe-menyu-fudzheira-pravila.html" rel="bookmark" title="Atveriet kreiso izvēlni Fujairah noteikumus Fujairas emirātā">Atveriet kreiso izvēlni Fujairah noteikumus Fujairas emirātā</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div><aside class="td_block_template_1 widget widget_text"> <div class="textwidget"> </div> </aside><aside class="td_block_template_1 widget widget_text"> <div class="textwidget"> </div> </aside> </div> </div> </div> </div> <div class="td-sub-footer-container td-container-wrap "> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span td-sub-footer-menu"> </div> <div class="td-pb-span td-sub-footer-copy"> Autortiesības 2021 - Datoru un klēpjdatoru remonts. Video kartes, cietie diski, internets, monitori.</div> </div> </div> </div> </div> <style type="text/css" media="screen"> /* custom css theme panel */ .td-post-header .entry-title { font-weight: normal !important; } h1.entry-title { font-weight: normal !important; border-bottom:#c44c4c 2px dotted; } h1.entry-title:before { content: "\f184"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .sf-menu ul .td-menu-item > a:hover, .sf-menu ul .sfHover > a, .sf-menu ul .current-menu-ancestor > a, .sf-menu ul .current-category-ancestor > a, .sf-menu ul .current-menu-item > a { color: #edf3f7; } .td-post-content h2 { border-bottom:#c44c4c 2px dotted;} .td-post-content h2:before { content: "\f184"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-post-content h3 { border-bottom:#c44c4c 2px dotted;} .td-post-content h3:before { content: "\f103"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .category-my .td-page-title { color:#c44c4c; font-weight: 400; font-size: 36px; } .post header .entry-title { line-height: 40px; } .td-category-description h2, .td-category-description h3 { color:#c44c4c;} .td-category-description h2 { border-bottom:#c44c4c 2px solid;} .td-category-description h2:before { content: "\f055"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-category-description h3 { border-bottom:#c44c4c 2px solid;} .td-category-description h3:before { content: "\f103"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-category-description ol, .td-category-description ul { margin-top:20px !important; margin-bottom:20px !important;} .td-category-description ul, .td-post-content ul { padding:0; margin:0; list-style:none; clear:both;} .td-category-description ul li, .td-post-content ul li { padding:0 0 0 15px; margin:0 0 10px 35px; position:relative;} .td-category-description ul li:before, .td-post-content ul li:before { content: "\f192"; font-family: "FontAwesome"; color:#c44c4c; position:absolute; left:-10px;} .td-category-description ol, .td-post-content ol { padding:0; margin:0 0 0 5px; list-style:none; counter-reset: lipoint; clear:both;} .td-category-description ol li, .td-post-content ol li { padding:0 0 0 15px; margin:0 0 10px 35px; position:relative;} .td-category-description ol li:before, .td-post-content ol li:before { content: counter(lipoint); counter-increment: lipoint; color:#fff; position:absolute; left:-16px; background:#c44c4c; width:20px; height:20px; line-height:20px; text-align:center; -webkit-border-radius: 20px;border-radius: 20px; font-size:12px; top:3px;} .toc_list li:before { display:none} .td-header-style-9 .td-header-menu-wrap-full { /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#c44c4c+0,c10000+100 */ background: #c44c4c; /* Old browsers */ background: -moz-linear-gradient(top, #c44c4c 0%, #c10000 100%); /* FF3.6-15 */ background: -webkit-linear-gradient(top, #c44c4c 0%,#c10000 100%); /* Chrome10-25,Safari5.1-6 */ background: linear-gradient(to bottom, #c44c4c 0%,#c10000 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c44c4c', endColorstr='#c10000',GradientType=0 ); /* IE6-9 */ } .sf-menu > li > a { color: #fff; } .td-header-style-9 .header-search-wrap .td-icon-search { color: #fff; } .td-affix a { color:#000 !important;} </style> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "smooth_scroll":"1"} ; /* ]]> */ </script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/table-of-contents-plus/front.min.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/wp-postratings/js/postratings-js.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/themes/Newspaper/js/tagdiv_theme.js'></script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js'></script> <script type='text/javascript'> /* <![CDATA[ */ var boxzilla_options = { "testMode":"","boxes":[]} ; /* ]]> */ </script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/boxzilla/assets/js/script.min.js'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/client/js/prod/lib.core.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/client/js/prod/lib.view.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/themes/baseline/js/prod/client.js'></script> <script type='text/javascript' src='/assets/client1.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/template-tags/item/js/prod/tag.item.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/template-tags/ui/js/prod/tag.ui.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/content-handlers/image/js/prod/handler.image.js'></script> <script> (function(){ var html_jquery_obj = jQuery('html'); if (html_jquery_obj.length && (html_jquery_obj.is('.ie8') || html_jquery_obj.is('.ie9'))) { var path = '/wp-content/themes/Newspaper/style.css'; jQuery.get(path, function(data) { var str_split_separator = '#td_css_split_separator'; var arr_splits = data.split(str_split_separator); var arr_length = arr_splits.length; if (arr_length > 1) { var dir_path = '/wp-content/themes/Newspaper'; var splited_css = ''; for (var i = 0; i < arr_length; i++) { if (i > 0) { arr_splits[i] = str_split_separator + ' ' + arr_splits[i]; } //jQuery('head').append('<style>' + arr_splits[i] + '</style>'); var formated_str = arr_splits[i].replace(/\surl\(\'(?!data\:)/gi, function regex_function(str) { return ' url(\'' + dir_path + '/' + str.replace(/url\(\'/gi, '').replace(/^\s+|\s+$/gm,''); } ); splited_css += "<style>" + formated_str + "</style>"; } var td_theme_css = jQuery('link#td-theme-css'); if (td_theme_css.length) { td_theme_css.after(splited_css); } } } ); } } )(); </script> </body> </html>