internet Okná Android
Rozbaľovať

Pomocou XML v prostredí Delphi. Používanie modelu objektu XML dokumentu Vytvorenie XML v DELPHI XE klapke

Vitajte! Tento blog je venovaný internetu a počítačom, a presnejšie, boli im venované.

Pravdepodobne je to okamžite vidieť, že mnoho rokov sa na stránke nezobrazili mnoho rokov. Áno, toto je osud väčšiny blogov. Akonáhle tento projekt bol ambicióznym podnikom, a autor, as v mnohých iných, ktorí v tom čase napísali, boli rozsiahle plány stať sa jedným z najlepších ruských bloggerov. No, ak sa tešíte, potom z tých blogov, ktoré boli vytvorené súčasne s mojím, väčšina sa už rozpustí vo večnosti. A Trochene som sa stal chýbajúcim časovým blogom. Takže áno, už nie je aktualizované. Aj keď som na tejto stránke raz vyhral v súťaži blogu 2011.

Dokonca som mal nápad odstrániť všetko, ale potom som revidoval staré materiály a uvedomil som, že by mohli byť stále užitočné pre čitateľov. Áno, niektoré články sú zastarané (ak mám dostatok sily, dostanú príslušné ochranné známky), ale lokalita, napríklad, môžu byť užitočné pre začiatočníkov - tu si môžete prečítať o základných koncepciách internetu, naučiť sa prispôsobiť Internet, Windows alebo dokonca sa rozhodnú ísť do Linuxu. Takže sa pozrite na okruhy a vyberte ten, ktorý je pre vás vhodný.

A po tom všetkom, dúfam, že je to viac ako len blog, ale skutočný internetový sprievodca. Stránka sa nachádza v režime adresára, kde sú všetky dostupné články štruktúrované podľa kategórií. A kto vie, možno sa tu objavia nové kvalitné články.

Búrka

Picodi.ru je zľavový portál z medzinárodných kupónov, poľského experta pri ukladaní a lacných nákupoch. Poliaci sa považujú za jednu z najvýznamnejších národov na svete, preto nie je prekvapujúce, že tento typ projektu sa pestuje z poľského spustenia Kodyrabatowe.pl. Čo môže byť užitočné pre tento portál bežnému používateľovi internetu v Rusku?

Moderné androidové telefóny sú viac ako telefóny. Zvyknete sa na súbor nainštalovaných programov, do histórie vašich hovorov a textových správ, zbierok fotografií a veľa. Ale čas ide, a plne zariadené zariadenie začína spomaliť, chýbať, alebo jednoducho stráca reprezentatívny pohľad z dôvodu štiepenia na puzdre alebo škrabancov na obrazovke. Existuje otázka výberu nového telefónu a zmenu telefónu Android. A ak je to otázka voľby, teraz budeme obísť párty teraz, potom "Presúvanie" na nový telefón zostáva vážnym problémom - absolútne nechcem spustiť všetky údaje od nuly. Tu budeme hovoriť o tom dnes.

Väčšina čitateľov tohto blogu, s najväčšou pravdepodobnosťou, nikdy neformátoval verzie riadenia verzie a nebude prísť v blízkej budúcnosti. A prepáč. Tento extrémne užívateľsky príjemný vynález je široko používaný programátormi, ale podľa môjho názoru by to mohlo byť veľmi užitočné a pre tých, ktorí aktívne pracujú s textami. Ale pravdepodobne neexistuje žiadny systém riadenia verzií, ktorý by bolo ľahké začať používať pre "Office" (Microsoft Office) práce. Myslím si však, že materiál uvedený v článku môže byť zaujímavý pre všetkých čitateľov.

Ak ste si mysleli, ako z vašich televíznych hodiniek filmov cez sieť a prístup k internetu, tento článok je pre vás. Nie, viem, že niektoré televízory majú funkčnosť Smart TV, ale nikdy som to nevidel, že to funguje. Zdá sa preto, že spoločnosť Google nedávno preukázala úplne úžasné zariadenie, okamžite skončilo s pocitom. Hovoríme o Media Streamer Chromecast (Chromkast), dokonalejšej a cenovo dostupnejšej verzii minuloročného hráča Nexus Q.

Dongle Chromkast, ktorého rozmery nepresahujú 2 palce, sa pripája k portu HDMI televízora a umožňuje, aby ste si mohli vychutnať sledovanie webového obsahu streamingu. Ak chcete ovládať stupeň, môžete použiť akékoľvek zariadenie (tablet, počítač, smartfón) na základe prevádzkovej platformy IOS, Windows, Android alebo Mac OS.

Tento článok je venovaný zariadeniu pamäte so systémom Android, problémy, ktoré môžu vzniknúť kvôli jeho nedostatku a ako ich vyriešiť. Ja sám som nemal tak dávno, že môj Android telefón začal pravidelne vydáva správy o nedostatku pamäte pri pokuse o vytvorenie konkrétnej aplikácie. Čo bolo pre mňa veľmi divné napriek tomu, že na opis na trhu by mal byť asi 16 GB a tento zväzok tiež zvýšil pomocou dodatočnej pamäťovej karty. Avšak, tento problém bol, a musel som dôkladne smiať skôr, ako som našiel správne riešenie, ktoré nevyžaduje prijatie prístupového prístupu alebo úplného obnovenia telefónu do výrobného stavu.

V poslednej dobe sa venuje veľkú pozornosť budovaniu e-business systémov, alebo keď sú tiež nazývané - B2B (Business to Business). Vzhľadom na odporúčania pre výstavbu výmenných systémov výmenných systémov koordinácie internetových technológií tela - WWW Consortium: Dôraz sa kladie na technológie XML a budovanie systémov výmeny dokumentov XML.

Výhodou použitia XML v E-Business je vysoká účinnosť B2B systémov pri nízkych nákladoch na jeho stvorenie v dôsledku jasnej a vizuálnej reprezentácie štruktúrovaných informácií, schopnosť používať moderné sieťové protokoly a vytváranie obchodných systémov v reálnom čase.

Nezávislosť prezentácie informácií vo forme dokumentov XML umožňuje odlišne, účasť na elektronickom podnikaní, aby sa od seba nezávislých.

Vo všetkých systémoch je výmena zvyčajne postavená v rovnakej schéme pomocou požiadaviek HTTP. Protokol SSL sa aplikuje ako protokol SSL (ale toto je samostatná téma).

Jednou z možných možností spracovania správ XML je budovanie zásobníka / CGI (ISAPI)-NEWS alebo COM (Server), ktoré tvoria alebo spracovávajú dokumenty XML.

Na jednej strane, aplikácia pôsobí ako klient, ktorý v post režime vydá http dotaz, na druhej strane je webový server na boku, ktorý spracovanie dotazov a odpoveď sa spracováva. Výmena informácií používa dokumenty XML.

Jednou z najúčinnejších možností implementácie je použitie existujúceho analyzátora XML podporujúceho modelu DOM. Takýto syntaktér je distribučný prívod win`98 alebo neoddeliteľnou súčasťou IE 4.7 a vyššie (pre Win`95) a predstavuje COM server umiestnený v knižnici MSXML.DLL.

Model Component object (COM) je enkapsulovaný dáta a metódy do jednej podstaty a spôsob, ako k nim prístup k nim prostredníctvom systému rozhrania. Delphi je jednoducho prístupný prístup k triedam objektov COM (v jednom COM serveri môže byť zahrnutých niekoľko tried). Prístup k objektom sa vykonáva inicializáciou inštancie triedy prostredníctvom systému rozhrania. Popis rozhrania sa vykonáva jazykom definície rozhrania (IDL), ktorý je možné automaticky vykonávať prostriedky média.

Delphi znamená dovoz z COM servera msxml.dll.Súbory IDL Interface Popis sú postavené a binárny popisovací súbor typu knižnice je TLB. Táto operácia sa vykonáva prostredníctvom systémového menu: Projekt Dovoz údajov typu Knižnica:(obrázok 1). Zobrazí sa nasledujúce dialógové okno (obrázok 2), v ktorom chcete vybrať objekt COM (v našom prípade, objekt je zaregistrovaný ako "Microsoft.xmldom (verzia 2.0)") a vytvorte súbor TLB (tlačidlo Vytvoriť jednotku.). Pomocou súboru TLB, životné prostredie generuje "Paskalevsky" Popis súboru súboru Com Server - MsXML_TLB.PAS

Súbor MSXML_TLB.PAS popisuje všetky rozhrania, konštanty a com servery.

Pre prístup k objektom prvku COM je potrebné v smernici Používa.pridajte názov súboru popisu knižnice (MSXML_TLB.PAS). Nižšie je uvedený najjednoduchší program, ktorý používa DOM Standard Msxml.dll Analyzer, ktorý sťahuje dokument XML a zobrazí ho v prvku textového poľa MEMO1.

používa. Windows, Správy, SYSUTILS, triedy, grafiku, ovládacie prvky, formy, dialógy, OLESERVER, MSXML_TLB, STDCTRLS; typ Tform1 \u003d. trieda(TFORM) Tlačidlo1: TBUTTON; MEMO1: TMEMO; postup. Button1click (Sender: Prepínanie); koniec; var. Form1: tform1; implementácia ($ R * .dfm) Postup.Tform1.button1click (odosielateľ: prepínací); // vyhlásenie o domdoku soklasu; var.cODOC: CODOMDOCUMENT; // triedy, v súlade s rozhraním iDomdocument; var.DOC: IXMLDOCUMENT; začať. // vytvoriť inštanciu objektu domdocument; DOC: \u003d codoc.create; // Zavolajte metódu režimu inštancie objektu DomDocument; Doc.load ("data.xml"); // prístup do inštancie vlastnosti XML objektu domdocument; Memo1.Text: \u003d doc.xml; koniec; koniec.

DOM Concept - model dokumentov

Každý dokument XML je reprezentovaný ako súbor množstva objektov (tried), s ktorým je možný prístup k jednotlivým prvkom (objektové polia). DOM - rozhranie opisuje prístup k jednoduchým objektom domu Domstring alebo CharakterAtata alebo samostatné XML prvky dokumentu: DomfragmentElement, Domnode, Domement.

Nasledujú najdôležitejšie vlastnosti a metódy xmldomdocument, xmldomnode, xmldomnodelist. Treba poznamenať, že model MSXML.dll XML analyzátor, MSXML.DLL XML Analyzer, ktorý je uvedený nižšie, používa analyzátor MSXML.dll XML ako DOM Consortium schválené modelom W3C.

Ďalšie úplný opis objektov DOM DOM možno nájsť na

Objekt xmldomdocument
Predstavuje najvyššiu úroveň hierarchie objektu a obsahuje metódy na prácu s dokumentom: jeho sťahovanie, analýza, vytváranie prvkov, atribútov, komentáre v ňom atď. .
Vlastnosť
Async. Identifikácia vlastnosti Aktuálny režim spracovania
Parsearror Vracia odkaz na objekt XMLDOMPARPARPARPERROR
Zapnutie overovania dokumentov.
url Vracia adresu URL dokumentu
zdokumentácia Obsahuje odkaz na koreňový prvok dokumentu ako objekt Xmldomemement.
Metódy
zaťaženie (URL)
lOADXML (XMLSTRING)
Zaťažuje dokument XML
uložiť (Objtarget) Uloží dokument XML v súbore
prerušiť. Prerušenie procesu sťahovania a spracovania dokumentu.
createatTribute (meno) Vytvorí nový atribút so zadaným názvom pre aktuálnu položku.
kreateNode (typ, názov, názovpaceuri) Vytvorí uzol zadaného typu a titulu
streacement (TagName) Vytvorí prvok dokumentu so zadaným názvom.
createTexnode (údaje) Vytvorí text vo vnútri dokumentu
getlementsbytagnem (tagname) Vracia odkaz na zber položiek dokumentov so zadaným názvom
nodefromid (idster) Vyhľadávací prvok identifikátorom

Objekt XMLDOMNODE
XMLDOMNODE Objekt, ktorý implementuje rozhrania DOM Uzol., Navrhnutý tak, aby manipuloval so samostatným uzlom stromu dokumentov. Jeho vlastnosti a metódy vám umožňujú prijímať a meniť úplné informácie o aktuálnom uzle - jeho type, názvu, celému názvu, jeho obsahu, zoznamu detských prvkov atď.
Vlastnosť
nODENAME, BASENAME. Vráti názov aktuálneho uzla.
prefix. Vracia predponu menného priestoru.
dátový typ. Definuje typ obsahu aktuálneho uzla
nODETYPE, NODETYPESTRING Vracia typ aktuálneho uzla:
atribúty. Vracia zoznam atribútov aktuálneho uzla ako kolekcia XMLDOMMENDEMAP.
text. Vracia obsah aktuálnej podpory vo forme textu.
xML Vráti reprezentáciu XML súčasnej podpory.
nODEVALUE. Vracia obsah aktuálneho uzla.
dieťa. Vracia zoznam detských prvkov ako XMLDOMNodelist.
firstild, Lastchild. Vráti prvý / posledný detský prvok
predchádzajúce, Nextsibling Vracia predchádzajúci / nasledujúci ošetrovateľský prvok.
rOZDELENÝ. Obsahuje odkaz na rodičovský prvok.
majiteľ Vracia ukazovateľ k dokumentu, v ktorom sa nachádza aktuálny uzol.
Metódy
appendshild (Newchild) Pridá do aktuálneho uzla nového detského prvku.
vložiť (Newchild, Refchild) Vloží detský uzol, ktorý má v aktuálnom podstrome "vľavo" uzla určeného parametrom Refchild.
klonenode (hlboko) Vytvorte kópiu aktuálneho prvku.
gettratribute.(Názov)
getattributende. (Názov)
setattribute (názov, hodnota)
setattributenode (XMLDOMATTRIBUTE)
Prístup k atribútom (vytváranie, čítanie, písanie) objektu. Názov - názov atribútu, hodnota - jeho hodnota. Vráti hodnotu objektu XMLDOMATTRIBUTE.
redascild (Newchild, OldChild) RemoveChild (OldChild) Spätná montáž starých predmetov aktuálneho zoznamu dcérskych spoločností na Newchild. Odstránenie objektu OldChild
selectionNodes Selectsinglende (vzorovanie) Vráti objekt XMLDOMNodelist vybraný vyhľadávacím vzorom alebo prvým uzlom
tRANSORNODE (STYESHEET)
transformanodetobject (štýl, výstupObjekt)
Priradí tabuľku štýlov na podporu aktuálneho uzla a vráti reťazec - výsledok spracovania. Odkaz na objekt DomDocument sa prenáša ako parameter, v ktorom sa nachádzajú pokyny XSL.

Pomocou XML v podnikaní.

Pre jasnejší obraz je potrebné vysvetlenie, a prečo je všetko potrebné, čo pochopiť, ako to funguje:

Pri budovaní systému B2B alebo firemného ERP, pri organizovaní informačnej výmeny dokumentov XML medzi podnikmi alebo pobočkami Prom-I sa účinne preukázaný informačný systém používa na základe dostupných webových serverov na protokoloch HTTP.

Na jednej strane, aplikácia pôsobí ako klient, ktorý v post režim vydá http dotaz, na druhej strane, webový server je na strane, na ktorej je požiadavka spracovávaná a odpoveď. Dokumenty XML sa používajú ako výmena.

Napríklad v jednoduchom firemnom ERP systému účtovného programu (ACS Účtovníctvo) je potrebné vytvoriť určitú žiadosť o faktúru a previesť ju na pobočku, ktorá má sklad (ACS Warehouse). Umenie je podobné nastavenie problému pri vytváraní B2B systému, keď podnik požiada o dostupnosť produktov (robí objednávku na nákup) od dodávateľa V.

Podnik A a Jeho program funguje ako klient. Sklad slúži dodávateľovi, kto má sklad bd komplex na serveri SQL Server. Exchange sa vykonáva prostredníctvom dodávateľa firemného webového servera V.

Nižšie je uvedený nasledujúci typický algoritmus výmeny:


Obrázok 3.
  1. Enterprise A.iniciovať proces A.(Produktová objednávka), ktorá pôsobí ako webový klient.
  2. Proces A.generuje dokument XML (napríklad faktúru) a prenáša ho ako poštový http dotaz na webový dodávateľ server V. Ako URI - použije sa identifikátor aplikácie. URI môže byť rovnaký ako pre všetky typy dokumentov alebo jednotlivca pre každý typ. To všetko závisí od štruktúry B2B (Web) servera.
  3. Webový server analyzuje požiadavku a generuje server Proces B.Prechádzaním dokumentu XML ako parametra.
    Proces na webovom serveri sa spustí a spracováva buď ako ASP stránka, CGI (ISAPI) - Aplikácia alebo Java Sevrlet (Serverová aplikácia)
  4. Proces B.- Vytvára požiadavku na databázový server SQL.
  5. SQL Server robí potrebné operácie v databáze, vytvára odpoveď a vráti ju. Proces B..
  6. Na odpoveď zo SQL Servera Proces B. Generuje dokument XML (odpoveď) a nechá ho odpovedať na požiadavku HTTP na klientovú aplikáciu.
  7. Ďalej, v závislosti od situácie na strane klienta, je vytvorený buď nový http dotaz, alebo končí relácie.

Niekoľko slov o organizácii správy dokumentov.

Všeobecné pravidlo rozvoja výmenného systému XML je:

  • najprv- rozvoj okruhu toku elektronických dokumentov a ich štruktúry;
  • po druhé- rozvoj tabuliek funkcií procesov (subprocesses) t.j. Aká funkcia vo vzťahu k ktorým dokumentom XML vykoná každý proces.

Každý dokument XML, podobne ako HTML dokument, by mal pozostávať z hlavičky správy (Information Worisoner) a orgánu správy (pre dotaz Táto informácia orámovaná označením na odpoveď na požiadavku). Aby bol dokument XML, ktorý sa má správne vytvoriť, je potrebné napríklad pre svoje dve zložky "hlavičky" a "Žiadosť" na zarámovanie tagov. Zobrazenie štandardného dokumentu je uvedené nižšie:

Titul (obrázok 4), na rozdiel od HTML dokumentu by mal obsahovať rôzne druhy informácií o službách, vrátane informácií o type prenosu a spracovania dokumentov. Informačné spracovanie dokumentu je prijaté, t.j. Zmysluplná časť je zarámovaná značkou. Treba poznamenať, že štruktúra hlavičky by mala byť zjednotená pre všetky typy dokumentov.

Pre proces, ktorý beží server, je algoritmus spracovania výhodne (ale nie je potrebný) na vytvorenie nasledovne:


Obrázok 6.

Niektoré hlavné chvíle pri vytváraní klientskej časti

Ako už bolo vysvetlené, pri vytváraní dokumentu XML používa svoje zastúpenie vo forme modelu DOM. Nižšie je uvedený príklad textu Delphiho textu programu XML správy.

postup.Tthread1.eadcreate (odosielateľ: prepínací); var. // Oznámenie o triede je potrebné vytvoriť CODOC: CODOMDOCUMENT; // xmldomdocument objekt DOC: DOMDOCUMENT; R: ixmldomement; Uzol: ixmldomement; // Domtext TXT: IXMLDOMText; // DomaTtribute Att: IXMLDOMATTRIBUTE; začať. // Vytvorenie DOM DOKUMENTU DOC: \u003d codoc.create; Doc.sen_async (FALSE); // Initial Initiation Dom dokumentu Doc.loadxml ("
"); // Vytvorenie domulement (tag<Odosielateľa.>) Uzol: \u003d DOC.CROADELEÁT ("SENDER"); // Vytvorenie textového uzla " LLC "TYPHOON"" Txt: \u003d DOC.CREATEXTNODE ("LLC" TYPHOON "); // priradenie uzla<Odosielateľa.\u003e Hodnota // text uzol " LLC "TYPHOON"" Node.appendchild (txt); // pridanie položky<Odosielateľa.\u003e V koreni dokumentu ako dcérskej spoločnosti R.appendchild (uzol); <Z.> Uzol: \u003d Doc.Createlement ("z"); Txt: \u003d doc.creatextnode ("http://tayfun.ru/xml/default.asp"); Node.appendchild (txt); R.appendchild (uzol); // Podobné operácie pre značku<Do.> Uzol: \u003d Doc.Createlement ("to"); Txt: \u003d doc.creatextnode ("http://irbis.ru"); Node.appendchild (txt); R.appendchild (uzol); // Vytvorte domement () Uzol: \u003d Doc.Createlement ("typedocument"); // Vytvorenie uzla XMLDOMATTRIBUTE ATT: \u003d DOC.CREATRIBUTE ("ID", "objednávka"); // Node.appendchild (ATT); R.appendchild (uzol); koniec;

Treba poznamenať, že oznámenie COODOC: CODOMDOCUMENTU A DOC: DOMDOCUMENTOVÉHO MENU, ako aj vytvorenie metódy vytvárania (doc: \u003d codoc.create;) sa vykonáva raz. Vyhlásenie o premennej je v sekcii opisu globálnych premenných, a nie v miestnom konaní, ako je preukázaná pre viditeľnosť v tomto príklade (t.j. jedna globálna premenná domdokumentu typu jeden programový modul).

Výsledkom vyššie uvedeného programu bude vytvorená hlavička, vo vzťahu k nášmu príkladu dokumentu XML: zobrazený na obrázku 5.


Obrázok 5.


Obrázok 6.

Hlavnou výhodou vysielania informácií vo forme dokumentov XML je, že je možné vytvoriť správu pomocou nezávislej štruktúry tabuliek v DBMS na prijatých a na prenášanej strane. Pomocou nášho príkladu, nech je potrebné previesť informácie o faktúrach podniku A, z DBMS štruktúry uvedenej na obrázku 6

Ak chcete vytvoriť dokument XML obsahujúci faktúru, pôvodne postavená požiadavka SQL (dotaz A) s informáciami o faktúre:

Vybrať * Z faktúry_generálnej Kde Invoicunum \u003d: Num VybraťTovar, Quulity, Cena, HZ_COD Z.Tovar Kde Invoicunum \u003d: Num //: Num - parameter, ktorý určuje číslo faktúry.

Nižšie je súčasťou programu, ktorý tvorí telo dokumentu XML:

postup. Tthread1.databodycreate (odosielateľ: tobject); var. // triedy a xmldomdocument // COODOC: CODOMDOCUMENT; // musí byť globálny, pre celý modul. // DOC: DOMDOCUMENT; // Oznámenie objektov domelement R: ixmldomement; // domov; Uzol, uzol2: ixmldomement; Node3, node4: ixmldomement; // Domtext TXT: IXMLDOMText; Str: reťazec; // Číslo faktúry: celé číslo; - Globálna premenná - // Masching 987654 // Querya, QueryB: Reťazec; - Globálna premenná, // Udržanie žiadosti o žiadosť o požiadavku // querya - žiadosť a všeobecné informácie o faktúre // queryb - dotaz B Informácie o tovare opísaných v // faktúry (pozri text) začať. Query.Close; // Pozri na text "Žiadosť A" Query.Text: \u003d Querya; // žiadosť o vykonanie Query.execsql; Query.open; // Získajte adresu koreňového prvku R: \u003d doc.get_documentlement; NODE2: \u003d DOC.CROADELEANT ("Žiadosť"); // vytvoriť domement (tag) Uzol: \u003d Doc.Createlement ("Faktúra"); // pridanie položky do koreňa R.APPENDCHILD (NODE2); // pridanie položky v Node2. Appendshild (uzol); // vytvoriť domement (tag) NODE3: \u003d DOC.CROADELEÁT ("Depurture"); // pridanie položky v Uzol. APPETCHILD (NODE3); // odvolanie na pole "Deputure" Str: \u003d query.fieldbyname ("degreture"). Asstring; // Vytvorenie textového uzla \u003d hodnota poľa // hodnota priradenia uzla // textový uzol, variabilný str Node.appendchild (txt); // Podobné operácie pre značku , , // , // (Pole DB "Príjemca") Uzol: \u003d DOC.CROADELEANT ("Destination"); // Názov databázového poľa sa nemusí zhodovať s menom Str: \u003d query.fieldbyname ("consignee") .asstring; // taga, v tejto výhode použitia Txt: \u003d doc.creatextnode (str); // DOM Rozhranie pred DBMS s podporou rozhrania XML, // Typ Oracle 8i alebo MS SQL 2000 Node.appendchild (txt); ... // Tvorba žiadosti o špecifikáciu tovaru // Zatvorí požiadavku na prístup Query.Close; // Pozri na text "Žiadosť v", Info. O produktoch Query.Text: \u003d QueryB; // priradenie hodnôt parametrov Query.Params.Asinteger: \u003d InvoiceNumber; // žiadosť o vykonanie Query2.execsql; // Otvorenie prístupu k údajom o požiadanie Query.open; // vytvoriť domement (tag) NODE3: \u003d DOC.CROADELEÁT ("IMEMS"); // pridanie položky v Uzol. APPETCHILD (NODE3); // cyklus na všetkých požiadavkách zatiaľ čo nie. Eof.query. robiť. Začnite Node4: \u003d Doc.Createlement ("IMEM"); // pridanie položky v Node3.appendchild (node4); // generácia údajov pre značku Str: \u003d query.fieldbyname ("cena"). Asstring; Txt: \u003d doc.creatextnode (str); Node.appendchild (txt); ... // Podobné operácie pre tagy , , koniec; koniec;

V dôsledku tohto postupu sa vytvorí nasledujúci text dokumentu XML:


Otvorená metóda sa používa na vytvorenie dotazu. IxmlhttPest:

postup. Otvorené (Const Bstrmethod, - Metóda typu \u003d "Post" BSTRURLL, - URL Varasync Server Adresa, - Asynchrónny / Synchrónny komunikačný režim \u003d TRUE BSTRUSER, - Username pre BSTRPASSWord Authentications) - Heslo

Vytvorenie serverovej časti spracovania dokumentov

Ako už bolo uvedené, spracovanie požiadavky HTTP je možné vykonať buď CGI aplikácie alebo Java serrety. Možné možnosti písania stránok ASP. V tomto prípade je však prenos dát možný len "dostať" pomocou reťazca dotazu. HTTP spracovanie požiadavky stránky ASP funguje efektívnejšie ako aplikácia CGI. Podľa môjho názoru však bez akéhokoľvek rozdielu, ako spracovať, a čo je dôležitejšie, aby sa vyriešila otázka - ako vybudovať spracovateľský program, a nie s tým, čo znamená.

Ak sme z predchádzajúcej kapitoly preskúmali možnosti formácie dokumentov XML, potom je úloha aplikácie servera je opakom dokumentov XML. Nižšie je súčasťou programu, ktorý analyzuje dokument XML:

postup.Tthread1.dataParser (odosielateľ: tobject); var. // Oznámenie objektov domelement R, fnode: ixmldomement; Str, filename: reťazec; Parm: reťazec; // SOKLASS OZNÁMENIE A CODOKXML, CODOKXSL, CODOKRESUTNOSŤ: CODOMDOCUMENT; // xmldomdocument objekt XMLDOC, XSLDOC, Výsledok: Domdocument; // httpstr: reťazec; - globálna premenná obsahujúca reťazec dotazu HTTP Začať. XMLDOC: \u003d codocxml.create; Xmldoc.loadxml (httpstr); // Získajte adresu koreňového prvku R: \u003d doc.get_documentlement; // Získanie hodnoty prvku FNODE: \u003d R.SelectionSingLenode ("// typedocument"); // Získajte ID hodnoty Atribút \u003d "Objednávka" Názov súboru: \u003d fnode.gettatibute ("ID"); // a vytvorenie názvu súboru poradie.xsl Názov súboru: \u003d názov súboru + "XSL"; // Vytvorenie dokumentu XSLDOC XSLDOC: \u003d codocxsl.create; Xldoc.loadxml (názov súboru); // Vytvorenie dokumentu XMLDOC Výsledok: \u003d CODOCROCRESULT.CREAT; // Nastavenie režimu synchrónneho spracovania Výsledky (FALSE); // Inštalácia debutovania Výsledok.ValidaTateonparase: \u003d true; // kolaps xmldoc od XSL šablóny Xmldoc.transformnoc, výsledok (xdzec, výsledok); // variable str je priradený k textovej hodnote // výsledný dokument. Str: \u003d výsledok; // vyhľadávací prvok FNODE: \u003d R.SelectionSingLenode ("// InvoiceNumber"); // a dostať hodnotu prvku Parm: \u003d fnode.text; // Zatvorí požiadavku na prístup Query.Close; Query.Text: \u003d str; // priradenie hodnoty parametra Query.Params.Asstring: \u003d Parm; // žiadosť o vykonanie Query.execsql; koniec;

Celý rozsah analýzy je aplikovať šablónu XSL, ktorá je vytvorená pre každý typ dokumentu individuálne. Výsledkom analýzy je reťazec sql dotaz. V dôsledku toho vykonanie vygenerovaného reťazca dotazu SQL urobí potrebné zmeny v DBMS.

Výhodou použitia analýzy cez šablónu je tiež v skutočnosti, že ukáže určitú flexibilitu dát, a je získaná úplná nezávislosť prevádzky algoritmu z programového kódu. Nižšie je text šablóny XSL, ktorý sa používa na spracovanie typu dokumentu.

Vložte do TABREG (z, TYPEDOC, BODY) HODNOTY (" ", "", "") Vložiť do tovaru (faktoruxenumber, meno, cena, kvalita) hodnoty (": NUM", " ", "", " ")

Vysvetlenie vyššie uvedeného príkladu, je potrebné poznamenať, že použitie párov tagov a je formálne, pretože Po analýze by mal byť aspoň jeden uzol prítomný vo výslednom dokumente XML. Metóda výsledkov prideľuje textovú hodnotu získanú počas analýzy výsledku dokumentu XML. V tomto prípade je hodnota, že páry tagov sú zarámované a t.j. Vytvorili sme požiadavku na SQL.

Ďalšou vlastnosťou písania Programu je potrebné poznamenať možnosť použitia parametra SQL : Num. Pomocou parametra vám umožňuje zjednodušiť text šablóny XSL. Definícia Hodnota zodpovedajúcich prvkov uzlov dokumentov XML sa určuje spočiatku zvoliť názov zodpovedajúceho uzla, napríklad:

Stručne o x XSL

XSL skratka pochádza z rozšíriteľného jazyka štýlu štýlu jazyka (XML dát). Ako je zrejmé z rozšíriteľného hlavičky jazyka štýlu (XSL) (XSL) sa používa na formátovanie údajov XML. Podľa definície W3C XSL pozostáva z dvoch častí:

  • XSLT - Transformácia XSL. Jazyk používaný na konverziu alebo formát (transformácie) XML dokumentov. Takto, pomocou XSLT, môžeme získať rôzne časti viacerých formách údajov a prezentácie údajov.
  • Formátovacie prvky. Tieto prvky zahŕňajú všetky prvky typografického dizajnu dát, po spracovaní pomocou XSL. Používa sa len na vytvorenie HTML stránok.

Používanie XSLT, môžeme vybrať údaje z súboru XML, ktoré potrebujete, a usporiadajte ich vo formulári, aby ste poskytli používateľovi. Napríklad v našom prípade sme transformovali údaje XML ako sql dotaz. Klasická aplikácia XSL je zvyčajne formátovanie údajov ako HTML stránok alebo vzácne znázornenie vo forme súborov RTF.

XSL súbor popisuje šablónu (šablónu), podľa ktorej bude vykonaná konverzia údajov XML. Vstupte na šablóny XSL, môžu byť pridelené nasledujúce prvky v XSLT (smernice):

Smernica XSL popis
xSL: Apply-Templates Smernica, ktorá označuje uplatňovanie príslušných atribútov šablón Select \u003d "Názov šablóny"
xSL: Atribút. vytvorí strom atribútu a pridáva ho k výstupnému prvku, názov \u003d "názov atribútu" parameter, menzace - URI na mennom priestore (prefix názvov)
xSL: Call-Template spôsobuje šablónu, názov atribútu \u003d "URI na šablóne"
xSL: Vyberte si.
xSL: kedy.
xSL: Inak.
vytvorenie výberu podľa stavu XSL: keď expr \u003d "výpočet výrazu na skript",
jazyk \u003d "jazyk-názov"
test \u003d "vypočítaný výraz"
xSL: Komentár generuje komentár k výstupnému dokumentu
xSL: Kopírovať
xSL: Kópia
skopíruje aktuálny uzol vo výstupnom zdroji alebo vloží fragment dokumentov na uzol, kde vyberte \u003d "Názov atribútu zdroja"
xSL: prvok. vytvorí výstupný prvok podľa názvu, názvu atribútu \u003d "Názov prvku", menpace \u003d "URI odkaz na menný priestor"
xSL: pre každý znovu aplikujte šablónu na všetky uzly zoznamy uzlov, vyberte Atribút Nastavuje zoznam uzlov.
xSL: ak. kontrola podmienok je nastavená atribútom testu ako výraz
xSL: zahrnúť zahŕňa externú šablónu, atribút HREF \u003d "URI Reference"
xSL: výstup určuje výstupný výsledok, atribút metódy môže mať "XML", "HTML" alebo "Text"
xSL: Param určuje hodnotu parametra, názov \u003d "Atribút mena parametra", vyberte \u003d "Hodnota"
xSL: Spracovateľská inštrukcia vytvorí pokyny na spracovanie, názov atribútu \u003d "Názov procesu procesu"
xSL: Zoradiť. zriedka mnoho uzlov, atribúty Select \u003d "Node uzla", dátový typ \u003d Typ dát ("Text" | "Číslo" QNAME), OBJEDNÁVKA \u003d Smer triedenia ("Vzostupne" | "Zostupne")
xSL: Styles. definuje dokument šablóny XSL, je koreňový prvok pre XSLT
xSL: šablóna. určuje šablónu XSL, názov \u003d "Uri predpona atribút na názov šablóny", zápas \u003d "Poznámka na uzol, ku ktorému sa šablóna vzťahuje"
xSL: text. generuje text na výstupný prúd, vypnite-výstup-escAping \u003d "áno" alebo "žiadny" atribút označuje schopnosť generovať znaky ESC
xSL: hodnota vloží hodnotu zvoleného uzla ako text, vyberte \u003d "ukazovateľ na uzol" atribút, z ktorého je hodnota
xSL: Premenná určuje hodnotu variabilných hraníc, atribút názvu \u003d "Názov premenného", vyberte \u003d "Vypočítajte hodnotu premennej"
xSL: S-Param uplatňuje parameter do šablóny, atribút názvu \u003d "Názov parametrov", vyberte \u003d Expression na výpočet aktuálneho kontextu, predvolenú hodnotu ".

Záver

Na záver treba poznamenať, že pomocou štandardného analyzátora XML msxml.dll.nie je to jediný prostriedok analýzy a vytvárania dokumentov XML. Napríklad na vytvorenie dokumentov XML na efektívne používanie komponentov TPAGEPRODUSER.a TTABLEPRODUSER.. Tento článok však len zdôrazňuje šírku a možnosť uplatnenia modelu DOM v praxi.

Autor bude veľmi vďačný za spätnú väzbu o relevantnosti témy, celkového obsahu, štýlu prezentácie, ako aj všetky ostatné komentáre, ktoré pomôžu ďalej zlepšovať kvalitu písania zbierky článkov a prepustenie kníh, ktoré sa vzťahujú Predmet praktickej strany používania dokumentov XML v elektronickom obchode. Viac informácií o praktickej strane aplikácie elektronických dokumentov sa môžete naučiť z www.edocs.al.ru na webovej stránke autora, je tiež plánované umiestniť zdrojové texty a príklady.

Jazyk XML sa čoraz viac používa na ukladanie informácií, zdieľanie medzi aplikáciami a webovými uzlami. V mnohých aplikáciách sa tento jazyk používa ako základné ukladanie údajov v iných - na vývoz a dovoz údajov XML. Z toho vyplýva, že je čas, aby vývojári premýšľali o tom, ako používať údaje XML vo vašich vlastných aplikáciách.

V tomto článku zvážime model objektu XML Document Access (DOM) a jej implementáciu spoločnosťou Microsoft - Microsoft XML DOM.

XML DOM je objektový model, ktorý poskytuje vývojárske objekty na prevzatie a spracovanie súborov XML. Objektový model sa skladá z nasledujúcich hlavných objektov: Xmldomdocument, XMLDOMNodelist, XMLDOMNODE, XMLDOMNAMETNODEMAP a XMLDOMPARPARPERROR. Každý z týchto objektov (okrem XMLDOMPARPERROR) obsahuje vlastnosti a metódy na získanie informácií o objekte, manipulovať s hodnotami a štruktúrou objektu, ako aj pohybujú sa pozdĺž štruktúry dokumentov XML.

Zvážte hlavné objekty XML DOM a uveďte niekoľko príkladov ich použitia v Borland Delphi.

Pomocou XML DOM v Borland Delphi

Aby ste mohli používať Microsoft XML DOM v aplikáciách DELPHI, musíte do projektu pripojiť príslušnú knižnicu typu. Aby sme to urobili, realizujeme projekt Knižnica typu importu a v dialógovom paneli knižnice Import Type, vyberte knižnicu Microsoft XML verzie 2.0 (verzia 2.0), ktorá sa zvyčajne nachádza v súbore systému Windows \\ MSXML.DLL

Po stlačení tlačidla Create Unit sa vytvorí modul rozhrania MSXML_TLB, ktorý nám umožní používať XML DOM Objects: Domdocument, XMLDOCUMENT, XMLHTPROEST a rad ďalších implementovaných v knižnici MSXML.DLL. Odkaz na modul MSXML_TLB musí byť uvedený v zozname použitia.

Zariadenie XML DOM

Model objektu dokumentu predstavuje dokument XML vo forme stromovej štruktúry pozostávajúcej z vetiev. XML DOM Softvérové \u200b\u200brozhrania umožňujú aplikáciám navigáciu na strom dokumentu a manipulovať s jeho pobočkami. Každá vetva môže mať špecifický typ (DomnodetyPe), podľa ktorého sa určujú rodič a dcérske spoločnosti. Vo väčšine dokumentov XML môžete nájsť pobočky prvku, atribútu a textových pobočiek. Atribúty (atribút) sú špeciálnym typom pobočky a nie sú dcérski pobočkami. Na správu atribútov sa používajú špeciálne metódy poskytnuté objektmi XML DOM.

Okrem implementácie odporúčaných rozhraní WOPE WEART WEBOVÉHO CONSORTIUMU (W3C), Microsoft XML DOM obsahuje metódy, ktoré podporujú XSL, Vzory XSL, názvov a typov údajov. Metóda SelectNodes Napríklad vám umožňuje používať XSL šablóny Syntax (XSL vzor syntax) na vyhľadávanie pobočiek v konkrétnom kontexte a metóda transformácie podporuje použitie XSL na vykonávanie transformácií.

Test XML Dokument

Ako príklad dokumentu XML užívajte katalóg hudobného CD-ROM, ktorý má nasledujúcu štruktúru:

Empire Burlesque Bob Dylan. USA. Columbia. 10.90 1985 Skryť svoje srdce. Bonnie Tylor. UK. Záznamy CBS. 9.90 1988 ... Unchain moje srdce. Joe Cocker. USA. Emita 8.20 1987

Teraz sme pripravení začať zvážiť objektový model XML DOM, oboznámenosť, s ktorou sa začne s objektom XMLDOMDocument.

XML DOKUMENTY - XMLDOMDOCUMENT

Práca s dokumentom XML začína sťahovaním. Aby sme to urobili, používame metódu zaťaženia, ktorá má iba jeden parameter, ktorý označuje adresu URL prevzatého dokumentu. Pri sťahovaní súborov z lokálneho disku je zadaný iba úplný názov súboru (súbor: /// Protocol v tomto prípade možno vynechať). Ak je dokument XML uložený ako reťazec, metóda LoadXML by sa mala použiť na prevzatie takéhoto dokumentu.

Na ovládanie spôsobu prevzatia dokumentu (synchrónny alebo asynchrónny) sa používa nehnuteľnosť Async. V predvolenom nastavení je táto vlastnosť pravdivá, čo znamená, že dokument je načítaný asynchrónne a ovládanie sa vráti do aplikácie, až kým sa dokument úplne nenačíta. V opačnom prípade je dokument načítaný synchrónne a potom musíte skontrolovať hodnotu readystate vlastnosti, aby ste zistili, dokument načítaný alebo nie. Môžete tiež vytvoriť handler udalosti EventStateChange, ktorý dostane kontrolu pri zmene hodnoty ReadyState Nehnuteľnosti.

Nižšie je uvedené, ako sťahovať dokument XML pomocou metódy zaťaženia:

Užívatelia ... MsXML_TLB ... Postup tform1.button1click (odosielateľ: prepínací); Var xmldoc: ixmldomdocument; Začnite XMLDOC: \u003d codomdocument.create; Xmldoc.async: \u003d FALSE; Xmldoc.load ('c: \\ datas.xml'); // // /////////////////////////////////////////////////////////////////////// // je kód, ktorý manipuluje // xml dokument a jeho pobočky // xmldoc: \u003d nil; koniec;

Po načítaní dokumentu môžeme odkazovať na svoje vlastnosti. Vlastnosť NodeName tak bude obsahovať hodnotu #document, vlastnosť NODETPESTRING je hodnota dokumentu, vlastnosť URL je súbor: /// C: /Data/data.xml hodnota.

Spracovanie je omylom

Zvlášť zaujímavé sú vlastnosti spojené so spracovaním dokumentu, keď je načítaný. Vlastnosť ParseError teda vráti objekt XMLDOMPARPARPERROROR, ktorý obsahuje informácie o chybách, ku ktorým došlo počas procesu spracovania.

Ak chcete napísať hovoru z chýb, môžete pridať nasledujúci kód:

Var xmlerrror: ixmldomparparor; ... XMLDOC.LOAD ('C: DATA DATA.XML'); XMLERROR: \u003d xmldoc.parsearror; Ak xmlerror.errorcode.<> 0 potom // // tu spracovávame chybu // else memo1.lines.add (xmldoc.xml); ... XMLDOC: \u003d NIL;

Ak chcete zistiť, ktoré informácie sa vrátia v prípade chyby, zmeňte nasledujúci adresár:

Empire Burlesque Bob Dylan. USA. Columbia. 10.90 1985

odstránenie uzatváracieho prvku V druhom riadku:</p><p> <CD> <TITLE>Empire Burlesque <ARTIST>Bob Dylan.</ARTIST> <COUNTRY>USA.</COUNTRY> <COMPANY>Columbia.</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> </p><p>Teraz napíšte kód, ktorý vracia vlastnosti objektu XMLDOMPARPARPERROROR:</p><p>XMLERROR: \u003d xmldoc.parsearror; Ak xmlerror.errorcode.<> 0 Potom s XMLERRORROR, MEMO1.LÁRE, ZAČÍNAŤ PRIDAŤ ('FILE:' + URL); Pridať ('kód:' + intostr (chybový kód)); Pridať ('Chyba:' + Dôvod); Pridať ('Text:' + SrcText); Pridať ('Row:' + IntTostr (linka)); Pridať ('Poloha:' + IntTostr (LinePOS)); End inde memo1.lines.add (xmldoc.xml); Koniec;</p><p>a splniť našu aplikáciu. V dôsledku toho získame nasledujúce informácie o chybách.</p> <p>Ako možno vidieť z vyššie uvedeného príkladu, informácie vrátené objektom XMLDOMPARPARRORORASTROU je dosť na lokalizáciu chyby a pochopiť dôvod jeho výskytu.</p> <p>Teraz obnovte uzatvárací prvok <TITLE> V našom dokumente a pokračujte v diskusii o XML DOM.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Prístup k stromu dokumentov</h2> <p>Ak chcete získať prístup k stromu dokumentov, môžete buď získať koreňový prvok a potom prejsť svojimi dcérskymi spoločnosťami, alebo nájsť určitú konkrétnu pobočku. V prvom prípade dostaneme koreňový prvok prostredníctvom vlastnosti zdokumentovania, ktorá vráti objekt typu XMLDOMNODE. Nižšie je uvedené, ako používať vlastnosť zdokumentovania, aby sa získal obsah každého dieťaťa prvku:</p><p>Var uzol: ixmldomnode; Root: ixmldomement; I: Integer; ... root: \u003d xmldoc.Documentlement; Pre I: \u003d 0 na root.childnrodes.Length-1 Začiatok uzla: \u003d root.childnNodes.Item [i]; Memo1.Lines.add (node.Text); Koniec;</p><p>Pre nášho dokumentu XML získame nasledujúci text.</p> <p>Ak sa zaujímame o nejaký druh špecifickej pobočky alebo úrovne pobočky pod prvou dcérskou spoločnosťou, môžeme použiť buď metódou nodeRhromid alebo geselementbytagnem metódu objektu XMLDOMDocument.</p> <p>Metóda nodeRozmetra vyžaduje špecifikáciu jedinečného identifikátora definovaného v XML schéme alebo definícii typu dokumentu (DTD) a vráti vetvu s týmto identifikátorom.</p> <p>Metóda GetelementByTagname vyžaduje indikáciu reťazca s konkrétnym prvkom (tagom) a vráti všetky vetvy s touto položkou. Nižšie je uvedené, ako používať túto metódu na nájdenie všetkých produkcií v našom adresári CD-ROM:</p><p>Uzly: ixmldomnodelist; Uzol: IXMLDOMNODE; ... uzly: \u003d xmldoc.gelementsbytagnem ("interpret"); Pre I: \u003d 0 do uzlov.Length-1 Začiatok uzla: \u003d uzliny.Item [i]; Memo1.Lines.add (node.Text); Koniec;</p><p>Pre náš Dokument XML získame nasledujúci text.</p> <p>Všimnite si, že metóda XMLDOMNODE SELECTNODESS poskytuje flexibilnejší spôsob prístupu k odvetviam dokumentu. Ale o to je mierne nižšie.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Dokumentová vetva - objekt XMLDOMNODE</h2> <p>Objekt XMLDOMNODE je vetva dokumentu. Tento objekt sme už vyskytli, keď bol získaný koreňový prvok dokumentu:</p><p>Root: \u003d xmldoc.documentlement;</p><p>Ak chcete získať informácie o vetve dokumentu XML, môžete použiť vlastnosti objektu XMLDOMNODE (tabuľka 1).</p> <p>Prístup k údajom uloženým v pobočke zvyčajne používajte vlastnosť NODEVALUE (k dispozícii pre atribúty, Textové pobočky, komentáre, návod na spracovanie a CDATA sekcií), alebo textový majetok, ktorý vráti textový obsah pobočky, alebo majetok NODETPEDVALUE. Ten, však možno použiť len na vetvy s napísanými prvkami.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h3> Pohyb na strome dokumentu</h3> <p>Objekt XMLDOMNODE poskytuje rôzne spôsoby, ako sa pohybovať cez strom dokumentu. Napríklad na prístup k materskej vetve sa používa vlastnosť maternodu, prístup k detským pobočkám sa vykonáva prostredníctvom nehnuteľností pre deti (typ Xmldchild), Firstchild a Lastchild (typ XMLDOMNODE), atď. Vlastnosť majiteľa vlastníka vráti objekt XMLDocument, ktorý identifikuje samotný dokument XML. Vyššie uvedené vlastnosti uľahčujú pohyb cez strom dokumentu.</p> <p>Teraz budem prekonať všetky pobočky dokumentu XML:</p><p>Root: \u003d xmldoc.documentlement; Pre I: \u003d 0 na root.childnrodes.Length-1 Začiatok uzla: \u003d root.childnNodes.Item [i]; Ak node.haschildNodes potom getchilds (uzol, 0); Koniec;</p><p>Ako je uvedené vyššie, selekčný objekt XMLDOMNODE poskytuje flexibilnejší spôsob prístupu k odvetviam dokumentu. Okrem toho existuje metóda selectsinglende, ktorá vracia iba prvú vetvu dokumentu. Obe tieto metódy vám umožňujú zadať šablóny XSL na vyhľadávanie pobočiek.</p> <p>Zvážte proces používania metódy selectnodes na extrahovanie všetkých vetiev, ktoré majú CD vetvu a infláciu.</p><p>Root: \u003d xmldoc.documentlement; Uzly: \u003d root.selectnodes (, CD / cena ');</p><p>Kolekcia uzlov bude umiestnená všetky pobočky CD CD. Diskusia o šablónach XSL sa vráti o niečo neskôr.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h3> Manipulácia dcérskymi pobočkami</h3> <p>Na manipuláciu s dcérskymi spoločnosťami môžeme použiť metódy objektu XMLDOMNODE (tabuľka 2).</p> <p>Ak chcete úplne odstrániť záznam prvého disku, musíte vykonať nasledujúci kód:</p><p>Var xmldoc: ixmldomdocument; Koreň: IXMLDOMNODE; Uzol: IXMLDOMNODE; XMLDOC: \u003d codomdocument.create; Xmldoc.async: \u003d FALSE; Xmldoc.load ('c: \\ datas.xml'); // Získajte koreňový koreňový prvok: \u003d xmldoc.Docketlement; Uzol: \u003d root; // odstrániť prvú dcérsku spoločnosť Node.Removesild (Node.Firstchild);</p><p>Upozorňujeme, že v tomto príklade odstráni prvú dcérsku spoločnosť. Ako odstrániť prvý prvok prvej dcérskej spoločnosti, je uvedený nižšie:</p><p>Var xmldoc: ixmldomdocument; Koreň: IXMLDOMNODE; Uzol: IXMLDOMNODE; XMLDOC: \u003d codomdocument.create; Xmldoc.async: \u003d FALSE; Xmldoc.load ('c: \\ datas.xml'); // Získajte koreňový koreňový prvok: \u003d xmldoc.Docketlement; // a prvý dcérsky uzol: \u003d root.Firstchild; // odstrániť prvú dcérsku spoločnosť Node.Removesild (Node.Firstchild);</p><p>Vo vyššie uvedenom príklade sme neodstránili prvú vetvu. <CD>…</CD>a prvý prvok pobočky - <TITLE>….

Teraz pridajte novú pobočku. Nižšie je kód zobrazujúci, ako pridať nový záznam o hudbe CD-ROM:

Var Newnode: IXMLDOMNODE; Dieťa: IXMLDOMNODE; ... // Vytvorte novú pobočku - Newnode: \u003d Xmldoc.createNode (1, 'CD', ''); // Pridať prvok Dieťa: \u003d xmldoc.createnode (1, "názov", ''); // pridajte prvok newnode.appendchild (dieťa); // a nastaviť svoju hodnotu dieťaťa.Text: \u003d 'ružový floyd'; // Pridať prvok <ARTIST> Dieťa: \u003d xmldoc.createnenode (1, "umelec", ''); // pridajte prvok newnode.appendchild (dieťa); // a vytvoriť svoju hodnotu dieťaťa.Text: \u003d 'Division Bell'; // Pridať prvok <COUNTRY> Dieťa: \u003d xmldoc.createnenode (1, "krajina", ''); // pridajte prvok newnode.appendchild (dieťa); // a nastaviť svoju hodnotu dieťaťa.Text: \u003d 'UK'; // Pridať prvok <COMPANY> Dieťa: \u003d xmldoc.createNode (1, 'spoločnosť', ''); // pridajte prvok newnode.appendchild (dieťa); // a nastavte svoju hodnotu Child.Text: \u003d 'EMI Records Ltd.'; // Pridať prvok <PRICE>Dieťa: \u003d xmldoc.createnode (1, 'cena', ''); // pridajte prvok newnode.appendchild (dieťa); // a vytvoriť svoju hodnotu dieťaťa.Text: \u003d '11 .99 "; // Pridajte prvok <YEAR> Dieťa: \u003d Xmldoc.createNode (1, 'rok', ''); // pridajte prvok newnode.appendchild (dieťa); // a vytvoriť svoju hodnotu dieťaťa.Text: \u003d '1994'; // a pridajte pobočku Root.AppendChild (Newnode); ...</p><p>Vyššie uvedený kód zobrazuje nasledujúci postup akcií na pridanie novej pobočky:</p> <ul><li>Vytvorenie novej pobočky pomocou CreateNode: <ul><li>vytvorenie položky pomocou metódy kreatenódy;</li> <li>pridanie prvku do vetvy metódou APPENDCHILD;</li> <li>nastavenie hodnoty prvku prostredníctvom textového majetku;</li> <li>... opakujte pre všetky položky.</li> </ul></li> <li>Pridanie novej pobočky do dokumentu APPENDCHILD.</li> </ul><p>Pripomeňme, že metóda AppendChild pridáva pobočku na konci stromu. Ak chcete pridať pobočku na konkrétne miesto stromu, musíte použiť metódu InsertBefore.</p> <h2> Sada pobočiek - XMLDomNodelist objekt</h2> <p>Objekt XMLNodelist obsahuje zoznam pobočiek, ktoré môžu byť postavené pomocou metód selectnodes alebo getlementsbytagnem a je tiež získaný z nehnuteľnosti pre deti.</p> <p>Už sme považovali používanie tohto objektu v príklade uvedenom v časti "Presunutie na strome dokumentu". Tu tiež dávame niektoré teoretické komentáre.</p> <p>Počet pobočiek v zozname je možné získať ako hodnota vlastnosti dĺžky. Pobočky majú indexy od 0 do dĺžky-1 a každá jednotlivá vetva je k dispozícii prostredníctvom prvku poľa položiek s príslušným indexom.</p> <p>Presunutie na zozname pobočiek môže byť vykonaná aj pomocou metódy NEXTNODE, ktorá vracia ďalšiu pobočku v zozname, alebo Nil, ak je súčasná vetva. Ak sa chcete vrátiť do hornej časti zoznamu, mali by ste zavolať metódu resetovania.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Vytvorenie a ukladanie dokumentov</h2> <p>Tak sme sa pozreli na to, ako môžete pridať pobočky a prvky do existujúcich dokumentov XML. Teraz vytvorte dokument XML "za behu". Po prvé, pripomíname vám, že dokument môže byť načítaný nielen z URL, ale aj z obvyklého reťazca. Nižšie je znázornené, ako vytvoriť koreňový prvok, ktorý sa potom môže použiť na dynamickú zostavu zostávajúcich prvkov (ktoré sme už uvažovali v časti "Manipulácia s dcérskymi spoločnosťami"):</p><p>Var xmldoc: ixmldomdocument; Koreň: IXMLDOMNODE; Uzol: IXMLDOMNODE; S: Najširšia; ... S: \u003d ' <CATALOG></CATALOG>'; XMLDOC: \u003d codomdocument.create; Xmldoc.async: \u003d FALSE; Xmldoc.loadxml (y); Root: \u003d xmldoc.documentlement; Uzol: \u003d xmldoc.createNode (1, 'CD', ''); Root.appendchild (uzol); Memo1.Lines.add (xmldoc.xml); ... XMLDOC: \u003d NIL;</p><p>Po vytvorení dokumentu XML ho uložte do súboru pomocou metódy uloženia. Napríklad:</p> <p>XMLDOC.SAVE ('C: DATA NEWCD.XML');</p> <p>Okrem uloženia v súbore umožňuje metódu uloženia uložiť dokument XML v novom objekte XMLDOMDocument. V tomto prípade je dokument plný spracovanie a v dôsledku toho kontrolovať jeho štruktúru a syntax. Nižšie je uvedené, ako uložiť dokument do iného objektu:</p><p>Postup tform1.button2click (odosielateľ: prepínací); Var xmldoc2: ixmldomdocument; Začať XMLDOC2: \u003d codomdocument.create; XMLDOC.SAVE (XMLDOC2); Memo2.lines.add (xmldoc2.xml); ... XMLDOC2: \u003d Nil; koniec;</p><p>Na záver sme si všimli, že metóda uloženia tiež umožňuje uložiť dokument XML na iné objekty COM, ktoré podporujú rozhrania ISTREAM, ISETSTMEAM alebo IPECISTSTREAMInit.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Používanie šablón XSL</h2> <p>Diskutujte o metóde diaľkovej metódy XMLDomNode objektu, sme spomínali, že poskytuje flexibilnejší spôsob prístupu k pobočkám dokumentu. Flexibilita spočíva v tom, že ako kritérium na výber pobočiek môžete zadať šablónu XSL. Takéto šablóny poskytujú výkonný mechanizmus na vyhľadávanie informácií v dokumentoch XML. Ak chcete napríklad získať zoznam všetkých názvov hudobných CD-ROM v našom adresári, môžete sledovať nasledujúci dotaz:</p><p>Ak chcete zistiť, či sú disky, z ktorých výkonní umelci vydávajú v Spojených štátoch, požiadavka je vytvorená takto:</p><p>Uzly: \u003d root.selectnodes ('CD / Artist');</p><p>Nižšie je uvedené, ako nájsť prvý disk v adresári:</p><p>Uzly: \u003d root.selectnodes ('CD / titul');</p><p>a naposledy:</p><p>Uzly: \u003d root.selectnodes ('CD / titul');</p><p>Ak chcete nájsť disky Bob Dilan, môžete vykonať nasledujúci dotaz:</p><p>Uzly: \u003d root.selectnodes ('CD [$ Any $ ARST \u003d "Bob Dylan"] / názov');</p><p>a na získanie zoznamu diskov vydaných po roku 1985, vykonávame nasledujúci dotaz:</p><p>Uzly: \u003d root.selectnodes ('CD / titul');</p><p>Podrobnejšia diskusia XSL syntaxe vyžaduje samostatnú publikáciu. Ak chcete intrigovať čitateľov a tlačiť ďalší výskum, dám len jeden malý príklad možného použitia XSL. Predpokladajme, že potrebujeme previesť náš adresár na obvyklú tabuľku HTML. Využívanie tradičných spôsobov, musíme vyriešiť všetky vetvy stromov a pre každú získanú položku na vytvorenie zodpovedajúcich tagov <TD>…</TD>.</p> <p>Používanie XSL, jednoducho vytvoríme šablónu (alebo tabuľku štýlov), v ktorej indikujeme, čo a ako konvertovať. Potom túto šablónu uložíme do nášho katalógu - a pripravený: Pred nami text šablóny XSL, ktorý konvertuje adresár v tabuľke (zoznam 2).</p> <p>Kód pre prekrytie šablóny XSL do nášho katalógu vyzerá toto:</p><p>Postup tform1.button2click (odosielateľ: prepínací); Var xldoc: ixmldomdocument; Začiatok XSLDOC: \u003d codomdocument.create; XSLDOC.LOAD ('C: DATA DATA.XSL'); Memo2.Text: \u003d xmldoc.transformnode (XSLDOC); XSLDOC: \u003d Nil; koniec;</p><p>Dokončením našej diskusie XSL je potrebné povedať, že v súčasnosti sa tento jazyk aktívne používa na transformáciu medzi rôznymi dokumentmi XML, ako aj na formátovanie dokumentov.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Záver</h2> <p>Pre celkom zrozumiteľné dôvody, v jednom článku nie je možné zvážiť všetky objekty Microsoft XML DOM a priniesť príklady ich používania. Tu sme sa dotkli len z hlavných problémov používania XML DOM v aplikáciách. V Tab. 3 Zobrazuje všetky objekty implementované v Microsoft XML DOM.</p> <p>COMPUTMPRESS 12 "2000</p> <p>Riešenie úloh na DELPHI <br> Delphi je druhým programovacím jazykom, s ktorým sa študenti najčastejšie oboznámia v procese učenia. Toto je začiatok vzdelávacieho objektu-orientovaného programovania. Ja, ako študent, urobil som na záver, že neexistuje ľahšia metóda na zvládnutie jazyka, než napísať kalkulačku na ňom. Aj keď si uvedomíte základnú funkciu pridania dvoch čísel, je to už na mnohých svetlo.</p> <p>CODEGAEAR, DELPHI 7, Lazarus je rôznymi kompilátormi, programami, ktoré budú prenesené do strojového kódu, ktorý vám napísal, preveďte ho do Zoliki a jedného. Toto sú všetky programy na vytváranie programov a nie samostatné programovacie jazyky. Tieto kompilátory používajú objekt Pascal programovací jazyk, ktorý je základom jazyka Delphi, ktorý je podobný syntaxe podobným zvyčajnému Pascalu, ale je funkčný výrazne odlišný. <br></p> <h2>Čo je programovací jazyk syntax?</h2> <p>Toto je formát pre písanie rôznych operátorov. Napríklad cyklus "pre" na Pascal má nasledujúci formát: "pre N: \u003d 1 až K do", atď.</p><p>V programovacom jazyku C ++ je rovnaký cyklus napísaný trochu inak: pre (n \u003d 1; n píšeme kalkulačku</p><p>To vám umožní pochopiť, ako objekty s programovým kódom interaging, čo je "premenné", ako fungujú matematické funkcie. Všetky programovanie v každom prípade bude výpočet. Hra je tiež program, ktorý neustále považuje za niečo, pracuje s číslami a číselnými funkciami. Programovanie je neoddeliteľné z matematiky.</p> <p>Používame na písanie environmentálneho prostredia Lazarus. Jeho funkčnosť nie je taká bohatá ako, povedzme, Codegear, ale je to voľný prístup a je určený na štúdium.</p><p>Otvorenie vývoja prostredia, vidíme tvar a panel prvkov. Tu je formulár.</p> <p><img src='https://i1.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-24.jpg' width="100%" loading=lazy loading=lazy></p><p>Tu je panel prvku.</p><p>Prvá vec, ktorú urobíme, je pridať tri položky, ktoré potrebujete na implementáciu pridávacieho funkcie dvoch čísel. Potrebujeme: "TEDIT" v počte troch kusov a "tbutton". Na obrázku nižšie sú uvedené v paneli šípok. Kliknite na nich raz, a potom raz v tvare a objavujú sa na ňom.</p><p>Toto sú textové polia pre vstup a pravidelné tlačidlo. Stretávate tieto prvky s použitím takmer akéhokoľvek programu Windows. Pozri sa.</p><p><img src='https://i0.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-27.jpg' width="100%" loading=lazy loading=lazy><br></p> <p>Teraz tieto nápisy vyčistite. Kliknite na kartu Zobraziť. A kliknite na "inšpektor objektov. Toto okno sa zobrazí.</p><p><img src='https://i1.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-28.jpg' width="100%" loading=lazy loading=lazy></p><p>Kliknite raz na náš prvok "Tlačidlo" na formulári a zmeňte hodnotu "titulok" v okne inšpektora na iné. Napríklad na slovo "ok". Kliknite na položku ENTER. Vidíme vo formulári, pretože prvok zmenil názov.</p><p>Urobte to s úpravou, stačí premenovať, ale urobíme ich bez akéhokoľvek obsahu. Zdôrazňujeme ich zase a čistite textovú hodnotu v inšpektori. Nezabudnite stlačiť 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>Podľa výsledku, naša forma vyzerá takto.</p><p><img src='https://i0.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-30.jpg' width="100%" loading=lazy loading=lazy><br></p> <p>Teraz, keď zarobil naša kalkulačka, musíte zaregistrovať potrebný softvérový kód pre postup nášho tlačidla. Dvakrát kliknite na prvku tlačidla a otvorte zdrojový editor.</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>Vidieť? Tlačidlo1Click Postup. Toto je postup, ktorý je zodpovedný za to, čo sa stane, keď kliknete na tlačidlo raz. A Nasledovné sa musia vyskytnúť: Program je potrebný v tretej úprave, aby ste nám priniesli súčet čísel zavedených v prvých dvoch oblastiach. Píšeme kód.</p><p><img src='https://i0.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-32.jpg' width="100%" loading=lazy loading=lazy></p><p>Takéto jednoduché 5 riadkov kódu musíme písať. Komentáre a vysvetlenia sú viditeľné na obrázku vyššie. Po tom kliknite na toto tlačidlo.</p> <p>Zostavuje sa kompilácia nášho projektu. Bude zostavený v programe. V prvých dvoch poliach zadáme čísla, kliknite na tlačidlo a získajte hodnotu sumy.</p><p><img src='https://i1.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-34-2.jpg' width="100%" loading=lazy loading=lazy></p> <h2>Záver</h2> <p>Môžete kliknúť na tlačidlo "Súbor", potom "uložiť všetko", vyberte priečinok, ktorý chcete uložiť, a budete mať plnohodnotný program, ktorý je možné vykonať z pracovnej plochy. Teraz sa pokúste prísť na to, že je potrebné prepísať v tomto kóde, aby sa program rozdelil na dve čísla a nie je zložené. Tip: Musíte zmeniť typ údajov. Nižšie uvedené video ukazuje podobný príklad, ale v Delphi 7, nie Lazarus.</p><p><span class="6qR5tjJKK3g"></span></p> <p>Mnohé programátory DELPHI, ukladanie nastavení sú spojené <i>Ini.</i> Súborov v ich programoch. Použitie tejto metódy, v menej závažných projektoch, je potrebné vyhnúť sa, pretože limity v flexibilite, čo zabraňuje ďalšiemu rozšíreniu programu. Stojí za to povedať, že takýto prístup je pomerne populárny, kvôli jeho jednoduchosti používania a prítomnosti vstavaných fondov na rozvojovom prostredí. <br><br> Ideálna možnosť pre ukladanie nastavení programu je však štruktúrovaná <i>XML</i> Súbory. Ich výhodou je, že počet parametrov nemusí byť stanovený. Ak chcete lepšie pochopiť, zvážte konkrétny príklad.</p><p>V programe Usearch, keď kliknete na nahrávanie, zobrazí sa kontextové menu, ktoré zobrazuje zoznam bodov. Tieto položky sú príkazy, ktoré sú zase stiahnuté z súboru Nastavenia. V prípade, že nastavenia boli uložené v <i>Ini.</i> Súbor, program by mohol uložiť a načítať určitý počet príkazov, napríklad 10 alebo 50. Akonáhle budete potrebovať dôležitejšie, budete musieť prepísať kód a podľa toho re-kompilovať ho.</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> Použitie prístupu <i>XML</i> Súbory, budeme mať možnosť sťahovať všetky parametre sekcie dynamicky. Na to všetko sa konfiguračný súbor stane elegantnejším bez nadmerného číslovania parametrov. Avšak štandardné nástroje na prácu s <i>XML</i> Delphi má mnoho nevýhod, preto odporúčam používať štandardnú knižnicu <b>Msxml</b>. Zvyčajne je štandardná časť rodinných systémov Windows.</p><p><img src='https://i1.wp.com/zoo-mania.ru/wp-content/uploads/2011/08/settings.xml_.jpg' align="center" width="100%" loading=lazy loading=lazy><br> Pre pripojenie <b>Msxml</b>Musíme vytvoriť súbor rozhrania so zoznamom všetkých funkcií importovaním z COM servera. Ako importovať rozhranie nie je dostatok podrobných článkov, navrhujem prevziať súbor <b>MSXML2_TLB.PAS.</b> Už pripravený na použitie. Po stiahnutí súboru ho umiestnite vedľa projektu, alebo hodiť do priečinka Delphi Lib Lib. Takto vytvorené programy budú môcť používať modul. <b>Msxml</b>, Stačí pridať MSXML2_TLB na použitie.</p><p>Pre jasnosť zvážte nasledujúci príklad aplikácie tejto knižnice:</p><p>Postup LoadData; Var xmldoc: domdocument; Root: ixmldomement; Začnite XMLDOC: \u003d codomdocument.create; Xmldoc.load ("settins.xml"); Root: \u003d xmldoc.documentlement; ShowMessage ("veľkosť / šírka"). Text); Root: \u003d nil; XMLDOC: \u003d Nil; koniec;</p><p>Po prvé, je vytvorená inštancia triedy Domdocumentu, po ktorej sa do pamäte vloží obsah súboru nastavení.xml. Ako podľa štandardu <i>XML</i> Súbor musí obsahovať koreňovú značku (v tomto prípade <i>konfigurácia</i>) Potom sa musíme dostať pomocou funkcie <i>Zdokumentácia</i>. Potom obsah obsahu medzi tagmi <width></width> ktoré sú medzi tagmi <size></size> . Tak z ponuky Settings.xml, naša metóda bude nasadiť text v správcovi <i>"100px"</i>.</p><p> <?xml version="1.0" encoding="utf-8"?> <config> <size> <height>500px</height> <width>100px</width> </size> </config> </p><p>Tu sa aplikuje metóda Selectsinglende, ktorá berie reťazec ako parameter.</p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast?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> </article> <div class="post-bottom"> <div class="post-share"> <script src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js"></script> <script src="//yastatic.net/share2/share.js"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir" data-counter=""></div> </div> </div> <div class='yarpp-related'> <div class="related-items"> <div class="headline">Nenašla odpoveď na vašu otázku? Pozrite sa tu</div> <div class="items"> <div class="related-item"> <a class="related-item__title" href="https://totrdlo.ru/sk/registraciya-lichnoi-stranicy-v-socialnoi-seti-facebook-kak-obedinit-dve-uchetnye.html"><img src="/uploads/3283d29449f6fcf31e7b8c7f3a8f6779.jpg" width="120" height="120" alt="Ako kombinovať dva účty na Facebooku?" class="related-item__image" / loading=lazy loading=lazy>Ako kombinovať dva účty na Facebooku?</a> <div class="related-item__comments"><span></span></div> </div> <div class="related-item"> <a class="related-item__title" href="https://totrdlo.ru/sk/kak-v-vorde-delat-ramki-krasivye-skachivaem-i-vstavlyaem-krasivye-ramki-v.html"><img src="/uploads/fd38b064f444ed23c0ccb9be68fc25ad.jpg" width="120" height="120" alt="Stiahnite si a vložte krásny rámec do dokumentu programu Word" class="related-item__image" / loading=lazy loading=lazy>Stiahnite si a vložte krásny rámec do dokumentu programu Word</a> <div class="related-item__comments"><span></span></div> </div> <div class="related-item"> <a class="related-item__title" href="https://totrdlo.ru/sk/clock-watchdog-timeout-windows-10-chto-delat-kak-ispravit-oshibki-clock-watchdog-timeout-tipa-sinii.html"><img src="/uploads/418be8351eeee7a32bc2c905fc8ed975.jpg" width="120" height="120" alt="Ako opraviť chyby typu CLOCK_WATCHDOG_TIMEOUT"синий экран" (0x00000101)" class="related-item__image" / loading=lazy loading=lazy>Ako opraviť CLOCK_WATCHDOG_TIMEOUT TYPU "Modrá obrazovka" (0x00000101)</a> <div class="related-item__comments"><span></span></div> </div> </div> </div> </div> <div style="text-align: center; margin-top: 15px; margin-bottom: 15px; " id="vanna-1965575812"><div class="adsense"><script type="text/javascript">ga_1();</script></div></div> </main> <aside class="sidebar"> <div class="advices" data-theme="vannapedia_v.3"> <div class="headline"></div> <div class="advices-content"> <img src="/uploads/e819878f778f58eec8fa5da1561c1952.jpg" width="120" height="120" alt="Recenzie procesora Intel Core I5 \u200b\u200b4590" class="advices__image" / loading=lazy loading=lazy> <div class="advices__title" data-id="3334"><a href="https://totrdlo.ru/sk/processor-intel-core-i5-4590-otzyvy-obem-kesh-pamyati-l3-mb.html">Recenzie procesora Intel Core I5 \u200b\u200b4590</a></div> </div> </div> <div class="vk-widget" id="text-3"> <div class="textwidget"><script type="text/javascript" src="//vk.com/js/api/openapi.js?130"></script> <div id="vk_groups"></div> </div> </div> <div class="sidebar-questions"> <div class="headline">Nový</div> <ul> <li><a href="https://totrdlo.ru/sk/chto-delat-esli-chernyi-ekran-chernyi-ekran-pri-vklyuchenii.html" >Čierna obrazovka, keď zapnete počítač</a></li> <li><a href="https://totrdlo.ru/sk/kak-zablokirovat-programme-dostup-v-internet-kak-zablokirovat.html" >Ako zablokovať prístupové programy na internete správne?</a></li> <li><a href="https://totrdlo.ru/sk/cherneet-ekran-chernyi-ekran-pri-vklyuchenii-kompyutera-chto.html" >Čierna obrazovka Keď zapnete počítač?</a></li> <li><a href="https://totrdlo.ru/sk/nastroika-mach3-pod-vash-stanok-bazovaya-nastroika-mach3-pereklyuchit-yazyk-na-match.html" >Základné nastavenie MACH3 prepínač prepínača na zápas 3</a></li> <li><a href="https://totrdlo.ru/sk/pochemu-net-zvuka-v-dinamikah-kompyutera-pochemu-ne-rabotaet-zvuk-na.html" >Prečo zvuk nefunguje na počítači, ako problém vyriešiť</a></li> <li><a href="https://totrdlo.ru/sk/kak-nachertit-diagrammu-v-vorde-stroim-grafiki-i-diagrammy-v-ms-word-diagramma.html" >Stavať grafiku a grafy v MS Word</a></li> </ul> </div> <div class="section"> </div> <div class="section"> <div class="headline">Populárne články</div> <ul class="sidebar-posts"> <li><a href="https://totrdlo.ru/sk/anime-fony-dlya-yandeks-brauzera-zhivye-upravlenie-temami-v-yandeks.html"><img src="/uploads/a7fbccd6efc443dd82be7ccfadade707.jpg" width="80" height="80" alt="Riadenie tém v Yandexe" / loading=lazy loading=lazy>Riadenie tém v Yandexe</a></li> <li><a href="https://totrdlo.ru/sk/post-i-get-zaprosy-prostymi-slovami-kak-otpravit-post-zapros-iz-brauzera-metod.html"><img src="/uploads/b37483beedf1144b2ca10b1603f4d78c.jpg" width="80" height="80" alt="Ako posielať požiadavku na požiadanie o požiadavku: Metóda Post Premenná Post v PHP Použite príklady" / loading=lazy loading=lazy>Ako posielať požiadavku na požiadanie o požiadavku: Metóda Post Premenná Post v PHP Použite príklady</a></li> <li><a href="https://totrdlo.ru/sk/kakie-sistemnye-trebovaniya-igry-cs-go-optimalnyi-komp-dlya.html"><img src="/uploads/ba7b6a9d8273cc696c1be7825f6e3e6c.jpg" width="80" height="80" alt="Optimálny počítač pre COP, ktorý počítač pre CS Go" / loading=lazy loading=lazy>Optimálny počítač pre COP, ktorý počítač pre CS Go</a></li> </ul> </div> <div class="section"> <div class="headline">NOVINKA NA STRÁNKU</div> <ul class="sidebar-posts sidebar-photo"> <li><a href="https://totrdlo.ru/sk/optimalnyi-komp-dlya-ks-go-kompyuter-dlya-cs-go-sistema-na-kotoroi-ks-go-ne.html">Optimálny počítač pre policajt</a></li> <li><a href="https://totrdlo.ru/sk/ispolzovanie-xml-v-srede-delphi-ispolzovanie-xml-document-object-model-sozdanie-xml-v.html">Používanie modelu objektu XML dokumentu Vytvorenie XML v DELPHI XE klapke</a></li> <li><a href="https://totrdlo.ru/sk/kak-ubrat-oshibku-scenariya-v-windows-kak-ispravlyat-svoi-oshibki.html">Ako opraviť vaše chyby Ako opraviť všetky chyby notebooku</a></li> <li><a href="https://totrdlo.ru/sk/migaet-bukva-s-na-printere-ustranyaem-oshibki-esli-printer.html">Odstráňte chyby, ak tlačiareň nechce tlačiť</a></li> <li><a href="https://totrdlo.ru/sk/kak-ubrat-oshibku-scenariya-v-windows-ispravlyaem-oshibki-v-rabote-windows-kak.html">Správne okná v systéme Windows Ako sa zbaviť počítačových chýb</a></li> </ul> </div> </aside> </div> <footer class="footer"> <nav class="footer__nav"><ul><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-1219"><a href="https://totrdlo.ru/sk/">Nový</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/ustranenie-nepoladok-zablokirovannyh-ustanovok-i-udalenii-net.html">Riešenie problémov uzamknutých inštalácií a delécií</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/modul-chisla-v-eksele-summirovanie-po-modulyu-v-excel-alternativnye.html">Summant Modul v Excel</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/administrator-windows-zaproshennaya-operaciya-trebuet-povysheniya-administrator.html">Požadovaná operácia vyžaduje zvýšenie</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/zakrepit-stroku-v-word-zakreplyaem-zakreplenie-paneli-instrumentov-v-word-vklyuchenie.html">Zapínanie panela s nástrojmi v programe Word</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-1230"><a href="https://totrdlo.ru/sk/">Populárny</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/zakrepit-tablicu-v-word-zakreplenie-paneli-instrumentov-v-word-vklyuchenie-otdelnyh.html">Zapínanie panela s nástrojmi v programe Word</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/ne-udalyaetsya-stranica-v-word-kak-v-programme-word-udalyat-stranicy.html">Ako v programe Word na odstránenie stránok</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/pochemu-poyavlyaetsya-sinii-ekran-na-windows-7-sinii-ekran-smerti-bsod-boremsya.html">Blue Death Screen (BSOD) - bojujeme s chybami</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/smenit-imya-vkontakte-bez-proverki-kak-pomenyat-imya-i-familiyu-v.html">Ako zmeniť názov a priezvisko do VK</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/vklyuchaetsya-noutbuk-acer-aspire-v3-571g-ne-vklyuchaetsya-noutbuk-acer-sbros.html">Nie je súčasťou notebooku Acer</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/rabochaya-klaviatura-ne-rabotaet-ustanovka-draivera-s-diska-otkazyvaetsya.html">Inštalácia ovládača z disku</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/moshchnye-igrovye-pk-moshchnye-igrovye-pk-kak-sobrat-igrovoi-komp-za-100000.html">Výkonné herné počítače, ako zostaviť herný počítač pre 100 000</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/devil-may-cry-vyletaet-ne-zapuskaetsya-dmc-tormozit-igra-vyletaet-glyuchit-reshenie-samyh-rasprostra.html">Diabol môže plakať havárie. Nezačína sa DMC? Inhibuje hru? Havaruje? Buggy? Riešenie najbežnejších problémov. Po každej misii v DMC: DEVIL môže plakať problémy s prevodom účtu za zoznamy vodcov</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-1236"><a href="https://totrdlo.ru/sk/">Odporučiť</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/dyablo-3-zavisaet-vo-vremya-igry-ne-zapuskaetsya-diablo-iii-tormozit-igra-vyletaet.html">Nezačína sa Diablo III?</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/kak-proverit-kompyuter-na-sledyashchie-programmy-kak-proverit-kompyuter-na.html">Ako skontrolovať počítač na spyware</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/kak-naiti-programmu-slezheniya-na-kompyutere-shpionskie.html">Spyware na počítači</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/chto-delat-esli-mass-effect-3-vyletaet-pri-zapuske-mass-effect-ne-zapuskaetsya.html">Hmotný efekt sa nespustí: Riešenie problémov</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/reshenie-samyh-rasprostranennyh-problem-ne-zapuskaetsya-the-saboteur.html">Začína saboteur?</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/pochemu-kompyuter-shch-lkaet-prichiny-po-kotorym-shchelkaet-zhestkii.html">Dôvody, pre ktoré klikne na pevnom disku a ich riešenie pri kliknutí v systémovej jednotke</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/deadfall-adventures-kak-sdelat-polnoekrannyi-rezhim-kak-aktivirovat-polnoekrannyi-rezhim-v-brauzere.html">Ako aktivovať režim celej obrazovky v prehliadači?</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/sk/mirror-s-edge-chernyi-ekran-zvuk-est-mirrors-edge-ne-zapuskaetsya-ne.html">Zrkadlá EDGE nespustí, nefunguje, nie je nainštalovaný</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-6898"><a href="https://totrdlo.ru/sk/">O stránke</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6900"><a href="">O stránke</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6901"><a href="">Reklama na webovej stránke</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6902"><a href="">Kontakty</a></li> </ul> </li> </ul></nav> <div class="footer-bottom"> <div class="footer-left"> <div class="foot__logo"> <div class="footer__logo-sitename">tOTRDLO.RU. <span> Ruka</span></div> </div> <style> .foot__logo { min-height: 35px; margin: 0 0 11px -79px; padding: 9px 0 0 79px; text-decoration: none; } </style> <p>© 2021 Všetky práva vyhradené</p> <p>Váš mobilný sprievodca. Operátorov. Užitočné poradenstvo</p> <ul class="footer-bottom__nav"> <li><a href="" >Reklama na projekte</a></li> </ul> </div> <div class="footer-buttons"> </div> <ul class="footer__soc"> <li><a href="http://vk.com/" target="_blank" class="vk">V kontakte s</a></li> <li>Odnoklassniki.</li> <li><a href="http://www.facebook.com/" target="_blank" class="fb">Facebook.</a></li> <li><a href="https://twitter.com/" target="_blank" class="twi">Twitter.</a></li> </ul> <div class="footer-right"> <div class="footer__note"></div> <div class="footer__counters" id="text-2"> <div class="textwidget"></div> </div> </div> </div> </footer> </div> </div> <link rel='stylesheet' id='wp-lightbox-bank.css-css' href='/wp-content/plugins/wp-lightbox-bank/assets/css/wp-lightbox-bank.css?ver=4.8.3' type='text/css' media='all' /> <script type='text/javascript' src='https://totrdlo.ru/wp-content/themes/vannapedia_v.3/js/scripts.js'></script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js?ver=4.8.3'></script> <script type='text/javascript' src='/assets/scripts1.js'></script> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "smooth_scroll":"1"} ; /* ]]> */ </script> <script type='text/javascript' src='https://totrdlo.ru/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript'> var q2w3_sidebar_options = new Array(); q2w3_sidebar_options[0] = { "sidebar" : "sidebar-fixed", "margin_top" : 10, "margin_bottom" : 0, "stop_id" : "respond", "screen_max_width" : 0, "screen_max_height" : 0, "width_inherit" : false, "refresh_interval" : 1500, "window_load_hook" : false, "disable_mo_api" : false, "widgets" : ['text-4'] } ; </script> <script type='text/javascript' src='https://totrdlo.ru/wp-content/plugins/q2w3-fixed-widget/js/q2w3-fixed-widget.min.js?ver=5.0.4'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.8.3'></script> <script type='text/javascript' src='https://totrdlo.ru/wp-content/plugins/wp-lightbox-bank/assets/js/wp-lightbox-bank.js?ver=4.8.3'></script> <script type='text/javascript' src='https://totrdlo.ru/wp-content/plugins/akismet/_inc/form.js?ver=4.0'></script> </body> </html>