Jazyk XML se stále více používá k ukládání informací, sdílení mezi aplikacemi a webovými uzly. V mnoha aplikacích se tento jazyk používá jako základní úložiště dat v jiných - export a import dat XML. Z toho vyplývá, že je čas, aby vývojáři přemýšleli o tom, jak používat data XML ve vašich vlastních aplikacích.
V tomto článku se podíváme na XML Document Objektový model (DOM) a jeho implementace společnosti Microsoft - Microsoft XML DOM.
XML DOM je objektový model, který poskytuje vývojářské objekty ke stažení a zpracování souborů XML. Objektový model se skládá z následujících hlavních objektů: XMLDOMDocument, XMLDOMDOMNODELIST, XMLDOMNODE, XMLDOMDOMDOMEDNODEMAP a XMLDOMPARSEError. Každý z těchto objektů (kromě XMLDOMPARSEERROR) obsahuje vlastnosti a metody pro získání informací o objektu, manipulovat s hodnotami a strukturou objektu, stejně jako pohyb podél struktury dokumentu XML.
Zvažte hlavní objekty XML DOM a uveďte několik příkladů jejich použití v Borland Delphi.
Použití XML DOM v Borland Delphi
Chcete-li použít aplikaci Microsoft XML DOM v aplikacích Delphi, musíte k projektu připojit příslušnou knihovnu typu. Chcete-li to udělat, provádíme projekt | Knihovna typu importu a v dialogovém panelu typu Import typu, vyberte knihovnu Microsoft XML verze 2.0 (verze 2.0), která je obvykle umístěna v souboru Windows Msxml.dll
Po stisknutí tlačítka Vytvořit jednotku bude vytvořen modul rozhraní MSXML_TLB, který nám umožní používat objekty XML DOM: Domdocument, XMLDocument, XMLHTTTREQUEST a číslo druhých implementovaných v knihovně MSXML.dll. Odkaz na modul MSXML_TLB musí být uveden v seznamu použití.
XML DOM zařízení
Model objektů dokumentu představuje dokument XML ve formě stromové struktury sestávající z větví. Softwarová rozhraní XML DOM umožňuje aplikacím procházet strom dokumentu a manipulovat s jeho větvemi. Každá větev může mít specifický typ (Domnodetype), podle kterého jsou určeny rodiči a dceřiné společnosti. Ve většině dokumentů XML můžete najít pobočky prvku, atributu a větví textu. Atributy (atribut) jsou speciální typ pobočky a nejsou dceřinými pobočkami. Správa atributů používá speciální metodyobjekty XML DOM.
Kromě implementace doporučených rozhraní World Wide Web Consortium (W3C) obsahuje Microsoft XML DOM metody, které podporují XSL, XSL vzory, jmenné prostory a typy dat. Například metoda SelectNodes umožňuje použít Syntaxe Syntaxe XSL (XSL Syntaxe) pro vyhledávání větví ve specifickém kontextu a metoda transformnode podporuje použití XSL pro provádění transformací.
Test XML Document
Jako příklad dokumentu XML vezměte katalogu hudebního disku CD-ROM, který má následující strukturu:
Nyní jsme připraveni začít zvažovat objektový model XML DOM, obeznámenost, se kterou začne s objektem XMLDOMDocument.
XML dokument - Xmldomdocument object
Práce s dokumentem XML začíná jeho stahování. K tomu použijeme metodu zatížení, která má pouze jeden parametr označující URL staženého dokumentu. Při stahování souborů z místního disku je zadán pouze celý název souboru (soubor: /// Protocol v tomto případě může být vynechán). Pokud je dokument XML uložen jako řetězec, metoda LoadXML by měla být použita ke stažení takového dokumentu.
Chcete-li řídit způsob stahování dokumentu (synchronní nebo asynchronní), použije se vlastnost Async. Ve výchozím nastavení je tato vlastnost true, což znamená, že dokument je načten asynchronně a řízení je vráceno do aplikace, i když je dokument plně načten. V opačném případě je dokument načten synchronně, a pak musíte zkontrolovat hodnotu vlastnosti ReadyState, abyste zjistili, dokument načten nebo ne. Můžete také vytvořit obslužný program událostí OnReadyStateChange, který obdrží kontrolu při změně hodnoty vlastnosti ReadyState.
Níže je uvedeno níže, jak stáhnout dokument XML pomocí metody zatížení:
Uživatelé ... MSXML_TLB ... Postup TForm1.Button1Click (odesílatel: Togject); Var xmldoc: ixmldomdocument; Začněte xmldoc: \u003d codomdocument.create; Xmldoc.async: \u003d false; Xmldoc.load ('C: Data Data.xml'); // // Zde je kód, který manipuluje // xml dokument a jeho pobočky // xmldoc: \u003d nil; konec;
Po načtení dokumentu můžeme odkazovat na jeho vlastnosti. Vlastnost Nodename tak bude obsahovat hodnotu #document, vlastnost NodetPestring je hodnota dokumentu, vlastnost URL je soubor: //// C: /data/data.xml Hodnota.
Zpracování je chyba
Zvláště zajímavé jsou vlastnosti spojené se zpracováním dokumentu, když je načten. Vlastnost ParseError tedy vrátí objekt XMLDOMPARSEError obsahující informace o chybách, ke kterým došlo během procesu zpracování.
Chcete-li napsat popisovač chyb, můžete přidat následující kód:
Var xmlerror: ixmldomparseError; ... xmldoc.load ('C: Data Data.xml'); Xmlerror: \u003d xmldoc.parseError; Pokud xmlerror.errorCode.<> 0 Potom // // Zde zpracujeme chybu // Else memo1.lines.add (xmldoc.xml); ... xmldoc: \u003d nil;
Chcete-li zjistit, které informace jsou v případě chyby vráceny, změňte následující položku adresáře:
vyjmutí uzavíracího prvku
Nyní napište kód, který vrátí vlastnosti objektu XMLDOMPARSEErrorror:
Xmlerror: \u003d xmldoc.parseError; Pokud xmlerror.errorcode.<> 0 Potom s xmlerrorem, memo1.lines do začátek přidat (souboru: '+ url); Přidat ('kód: "+ INTTOSTR (ERRORCODE)); Přidat ("chyba:" + důvod); Přidat (text: "+ SRCTEXT); Přidat ('Row:' + INTTOSTR (LINE)); Přidat ('Pozice:' + INTTOSTR (LINEPOS)); End Ensse Memo1.Lines.add (Xmldoc.xml); Konec;
a naplňují naši aplikaci. V důsledku toho získáme následující informace o chybách.
Jak je vidět z výše uvedeného příkladu, informace vrácené objektem XMLDOMPARSEError je dostačující na lokalizaci chyby a pochopit důvod pro jeho výskyt.
Nyní obnovte zavírací položku
Přístup k stromu dokumentu
Pro přístup k stromu dokumentu můžete buď získat kořenový prvek a pak projít jeho dceřinými společnostmi, nebo najít určitou konkrétní pobočku. V prvním případě se dostaneme kořenový prvek prostřednictvím vlastnosti dokumentuLement, který vrací objekt typu XMLDOMNODE. Níže je uvedeno, jak používat vlastnost DocumentLement, aby se získal obsah každého podřízeného prvku:
VAR uzl: ixmldomnode; Kořen: ixmldomElement; I: celé číslo; ... kořen: \u003d xmldoc.documentelement; Pro I: \u003d 0 k root.childnodnes.Length-1 Začněte uzel: \u003d root.childnodes.Item [i]; Memo1.lines.add (node.text); Konec;
Pro náš dokument XML dostaneme následující text.
Pokud se zajímáme o určitý druh konkrétní úrovně pobočky nebo pobočky pod první dceřiné společnosti, můžeme použít buď nodefromidovou metodu nebo metodu getelementbytagname objektu XMLDOMDocument.
Metoda nodefromid vyžaduje určení jedinečného identifikátoru definovaného v definici schématu XML nebo definice typu dokumentu (DTD) a vrátí větev s tímto identifikátorem.
Metoda GetElementbyTagNname vyžaduje indikaci řetězce s konkrétním prvkem (tagem) a vrátí všechny větve s touto položkou. Níže je uvedeno, jak použít tuto metodu najít všechny umělce v našem adresáři CD-ROM:
Uzly: ixmldomnodelist; Uzel: ixmldomnode; ... uzly: \u003d xmldoc.getelementsbytagname ('Artist'); Pro I: \u003d 0 k uzlům.Length-1 do začátku uzlu: \u003d nodles.Item [i]; Memo1.lines.add (node.text); Konec;
Pro náš dokument XML dostaneme následující text.
Všimněte si, že metoda XMLDOMNODE SelectNodes poskytuje flexibilnější způsob přístupu k větvům dokumentu. Ale o tom je o něco nižší.
Větev dokumentů - xmldomnode objekt
Objekt XMLDOMNODE je větev dokumentů. Tento objekt jsme se již setkali, když byl získán kořenový prvek dokumentu:
Kořen: \u003d xmldoc.documentelement;
Chcete-li získat informace o větvi dokumentu XML, můžete použít vlastnosti objektu XMLDOMNODE (tabulka 1).
Přístup k datům uloženým v pobočce, obvykle používají vlastnost Nodevalue (k dispozici pro atributy, textové větve, komentáře, pokyny pro oddíly pro zpracování a cdata) nebo vlastnost Text, která vrací textový obsah pobočky nebo vlastnost NodetypedValue. Ten, nicméně, může být použit pouze pro větve s napsanými prvky.
Pohybující se na stromu dokumentu
Objekt XMLDOMNODE poskytuje různé způsoby, jak se pohybovat přes strom dokumentu. Chcete-li například přístup k nadřazené pobočce, použije se vlastnost Parentnode, přístup k dětským větvům se provádí prostřednictvím vlastností dětí (XMLDCHILD typ), firstchild a LandChild (typ xmldomnode) atd. Vlastnost OwnerDocument vrátí objekt XMLDocument, který identifikuje samotný dokument XML. Výše uvedené vlastnosti usnadňují přesunutí stromu dokumentu.
Nyní překonám všechny větve dokumentu XML:
Kořen: \u003d xmldoc.documentelement; Pro I: \u003d 0 k root.childnodnes.Length-1 Začněte uzel: \u003d root.childnodes.Item [i]; Pokud uzl.haschildnodes pak getChilds (uzel, 0); Konec;
Jak bylo uvedeno výše, SelectNodes objekt XMLDOMNODE poskytuje flexibilnější způsob přístupu k větví dokumentu. Kromě toho je metoda selectSinglende, která vrací pouze první pobočku dokumentu. Obě tyto metody umožňují určit šablony XSL pro vyhledávání větví.
Zvažte proces používání metody SelectNodes extrahovat všechny větve, které mají pobočku CD a inflace.
Kořen: \u003d xmldoc.documentelement; Uzly: \u003d root.Selectnodes ('CD / Cena');
Kolekce uzlů bude umístěna všechny větve CD Switter Cena. Diskuse of XSL šablon se vrátí o něco později.
Manipulace podle dceřiných větví
Pro manipulaci s dceřinými společnostmi můžeme použít metody objektu XMLDOMNODE (tabulka 2).
Chcete-li zcela odstranit záznam prvního disku, musíte provést následující kód:
Var xmldoc: ixmldomdocument; Kořen: ixmldomnode; Uzel: ixmldomnode; XMLDOC: \u003d CODOMDocument.Create; Xmldoc.async: \u003d false; Xmldoc.load ('C: Data Data.xml'); // dostat kořenový prvek kořen: \u003d xmldoc.documentelement; Uzel: \u003d root; // Odstraňte první dceřiný node.removechild (node.firstchild);
Vezměte prosím na vědomí, že v tomto příkladu odstraníme první dceřiná společnost. Jak odstranit první prvek první dceřiné společnosti, je uvedeno níže:
Var xmldoc: ixmldomdocument; Kořen: ixmldomnode; Uzel: ixmldomnode; XMLDOC: \u003d CODOMDocument.Create; Xmldoc.async: \u003d false; Xmldoc.load ('C: Data Data.xml'); // dostat kořenový prvek kořen: \u003d xmldoc.documentelement; // a první dceřiný uzel: \u003d root.firstchild; // Odstraňte první dceřiný node.removechild (node.firstchild);
V příkladu výše, jsme neodstraňovali první pobočku.
Nyní přidejte novou pobočku. Níže je uveden kód, který ukazuje, jak přidat nový záznam hudebního disku CD-ROM:
VAR NOVINKA: IXMLDOMNODE; Dítě: Ixmldomnode; ... // vytvořit novou pobočku -
Výše uvedený kód zobrazuje následující posloupnost akcí pro přidání nové větve:
- Vytvoření nové pobočky pomocí CreatErenode:
- vytvoření položky pomocí metody CreatErode;
- přidání prvku do větve metodou aplikace ADDENDCHILD;
- nastavení hodnoty prvku prostřednictvím vlastnosti textu;
- ... opakujte pro všechny položky.
- Přidání nové větve do dokumentu AppendChild.
Připomeňme si, že metoda AppendChild přidává na konci stromu větev. Chcete-li přidat větev na konkrétní místo stromu, musíte použít metodu vložky.
Sada poboček - Xmldomnodelist objekt
Objekt XMLNODELIST obsahuje seznam větví, které mohou být postaveny pomocí metod SelectNodes nebo GetElentsByTAGNAME a je také získána z vlastnictví Childnodes.
Už jsme považovali za použití tohoto objektu v příkladu uvedeném v sekci "Stěhování na stromě dokumentu". Zde dáváme také nějaké teoretické komentáře.
Počet poboček v seznamu lze získat jako hodnotu vlastnosti délky. Větve mají indexy od 0 do délky-1 a každá jednotlivá větev je k dispozici prostřednictvím prvku pole pole s odpovídajícím indexem.
Stěhování na seznamu větví lze také provádět pomocí metody NextNode, která vrátí další pobočku v seznamu, nebo nil, pokud je aktuální pobočka druhá. Chcete-li se vrátit k horní části seznamu, měli byste zavolat metodu resetu.
Vytváření a ukládání dokumentů
Takže jsme se podívali na to, jak můžete přidat pobočky a prvky do existujících dokumentů XML. Nyní vytvoří XML dokument "na letu". Nejprve vám připomínáme, že dokument může být načten nejen z adresy URL, ale také z obvyklého řetězce. Níže je uvedeno, jak vytvořit kořenový prvek, který může být pak použit k dynamickému vybudování zbývajících prvků (které jsme již považovali v sekci "Manipulace s dceřinými společnostmi"):
Var xmldoc: ixmldomdocument; Kořen: ixmldomnode; Uzel: ixmldomnode; S: WideString; ... s: \u003d '
Po vytvoření dokumentu XML uložte jej do souboru pomocí metody Uložit. Například:
XMLDOC.SAVE ('C: Data Newcd.xml');
Kromě uložení v souboru umožňuje Uložit dokument uložit dokument XML v novém objektu XMLDOMDocument. V tomto případě je dokument plné zpracování a v důsledku toho kontrola jeho struktury a syntaxe. Níže je uvedeno, jak uložit dokument v jiném objektu:
POSTUP TFORM1.BUTTON2CLICK (odesílatel: Togject); Var xmldoc2: ixmldomdocument; Začněte xmldoc2: \u003d codomdocument.create; Xmldoc.save (xmldoc2); Memo2.lines.add (xmldoc2.xml); ... xmldoc2: \u003d nil; konec;
Závěrem si všimneme, že metoda Save také umožňuje uložit dokument XML do jiných objektů COM, které podporují rozhraní Istream, ISESTREAM nebo IPESCSTESTREAMINIT.
Použití šablon XSL
Diskutovat o metodě SelectNodes XMLDOMNODE, zmínili jsme se, že poskytuje flexibilnější způsob přístupu k větvům dokumentu. Flexibilita spočívá v tom, že jako kritérium pro výběr větví, můžete zadat šablonu XSL. Tyto šablony poskytují výkonný mechanismus pro vyhledávání informací v dokumentů XML. Například, aby se seznam všech názvů hudebního disku CD-ROM v našem adresáři, můžete postupovat podle následujícího dotazu:
Chcete-li zjistit, zda jsou disky, které jsou umělci propuštěni ve Spojených státech, je žádost vytvořena následovně:
Uzly: \u003d root.SelektNODES ('CD / ARRTIST');
Níže je uvedeno, jak najít první disk v adresáři:
Uzly: \u003d root.Selectnodes ('CD / název');
a poslední:
Uzly: \u003d root.Selectnodes ('CD / název');
Chcete-li najít disky Bob Dilan, můžete provést následující dotaz:
Uzly: \u003d root.Selectnodes ('CD [$ všechny $ Arst \u003d "Bob Dylan"] / název ");
a dostat seznam disků propuštěných po roce 1985 provádíme následující dotaz:
Uzly: \u003d root.Selectnodes ('CD / název');
Podrobnější diskusi o Syntaxe XSL vyžaduje samostatnou publikaci. Inovační čtenáře a tlačit další výzkum, dám pouze jeden malý příklad možného použití XSL. Předpokládejme, že musíme převést náš adresář do obvyklého html tabulky. Využití tradičních způsobů, musíme vyřešit všechny větve stromů a pro každou položku získanou pro vytvoření odpovídajících značek
Pomocí XSL, jednoduše vytvoříme šablonu (nebo styl tabulky), ve které naznačujeme co a jak převést. Pak tuto šablonu uveďte na náš katalog - a připraveni: Před námi text šablony XSL, který převádí adresář v tabulce (výpis 2).
Kód pro překrytí šablony XSL k našemu katalogu vypadá takto:
POSTUP TFORM1.BUTTON2CLICK (odesílatel: Togject); Var xsdocc: ixmldomdocument; Začněte XSLDOC: \u003d kódomdocument.Create; XSLDOC.LOAD ('C: Data Data.xsl'); Memo2.text: \u003d xmldoc.transformnode (xsdoc); XSLDOC: \u003d nil; konec;
Dokončením naší diskuse o XSL by mělo být uvedeno, že v současné době se tento jazyk aktivně používá pro transformaci mezi různými dokumenty XML, stejně jako pro formátování dokumentů.
Závěr
Pro poměrně srozumitelné důvody, v jednom článku není možné zvážit všechny objekty Microsoft XML DOM a přinést příklady jejich použití. Zde jsme se dotkli hlavních problémů používání XML DOM v aplikacích. V záložce. 3 Zobrazuje všechny objekty implementované v Microsoft XML DOM.
Computerpress 12 "2000 2000
Řešení úkolů na Delphi
Delphi je druhým programovým jazykem, se kterými se studenti nejčastěji seznámí v procesu učení. Jedná se o začátek vzdělávacího objektově orientovaného programování. Já, jako student, který pro sebe učinil závěr, že není snadnější metoda zvládnout jazyk, než napsat kalkulačku na něj. I když si uvědomíte elementární funkci přidání dvou čísel, je to již na mnoha světlech.
CodeGaear, Delphi 7, Lazarus je různé kompilátory, programy, které budou přeneseny do počítačového kódu, který vám napsal, převádějí jej do Zoliki a jeden. Jedná se o všechny programy pro vytváření programů a ne samostatných programovacích jazyků. Tyto kompilátory používají objektový programovací jazyk objektu, který je základem Delphiho jazyka, který je podobný syntaxi podobné obvyklému Pascal, ale je funkční významně odlišný.
Co je syntaxe programovací jazyky?
Jedná se o formát pro psaní různých operátorů. Například "pro" cyklus na Pascal má následující formát: "Pro n: \u003d 1 až k" atd.
V programovacím jazyce C ++ je stejný cyklus psán poněkud odlišně: pro (n \u003d 1; n píšeme kalkulačku
To vám umožní pochopit, jak objekty s kódovým kódem interagují, co je "proměnné", jak fungují matematické funkce. Všechny programování v každém případě bude výpočet. Hra je také program, který něco neustále zvažuje, pracuje s čísly a číselnými funkcemi. Programování je neoddělitelné od matematiky.
Používáme k napsání vývojového prostředí Lazarus. Jeho funkčnost není tak bohatá jako, řekněme, CodeGear, ale je to volný přístup a je navržen tak, aby studoval.
Otevření vývojového prostředí, vidíme tvar a panel prvků. Zde je formulář.
Zde je panel prvku.
První věc, kterou uděláme, je přidat tři položky, které potřebujete k implementaci adiční funkce dvou čísel. Potřebujeme: "TEDIT" na počtu tří kusů a "Tbutton". Na obrázku níže jsou uvedeny v panelu šipek. Klikněte na ně jednou a pak jednou ve tvaru a objeví se na něm.
Jedná se o textová pole pro vstup a pravidelné tlačítko. Setkáte se s těmito prvky pomocí téměř libovolného programu Windows. Podívej se.
Nyní vyčistěte tyto nápisy. Klepněte na kartu Zobrazení. A klikněte na "Inspektor objektů. Zobrazí se toto okno.
Klikněte jednou na našem prvku "na formuláři a změňte hodnotu" titulek "v okně inspektora jiným. Například na slovo "OK". Klepněte na tlačítko Enter. Vidíme ve formě, protože prvek změnil název.
Jen to udělej s úpravou, prostě nepřihlédněte, ale my je učiníme bez obsahu. Zvýrazňujeme je zase a vyčistíme textovou hodnotu v inspektoru. Nezapomeňte stisknout klávesu Enter.
Podle výsledku vypadá naše forma takto.
Nyní, že naše kalkulačka získala, musíte zaregistrovat potřebný softwarový kód pro postup našeho tlačítka. Dvakrát klikněte na prvek tlačítka a otevřete zdrojový editor.
Vidět? Button1Click postup. Jedná se o postup, který je zodpovědný za to, co se stane, když jednou klikujeme na tlačítko jednou. A musí nastat následující: program je zapotřebí na třetí úpravách, aby nás součet čísel zavedených v prvních dvou polích. Píšeme kód.
Takové jednoduché 5 řádků kódu, které potřebujeme psát. Komentáře a vysvětlení jsou viditelné na obrázku výše. Poté klikněte na toto tlačítko.
Bude sestavena kompilace našeho projektu. Bude sestavena v programu. Zadáme čísla do prvních dvou polí, klikněte na tlačítko a získáte hodnotu částky.
Závěr
Klepnutím na tlačítko "Soubor", pak "Uložit vše", vyberte složku, kterou chcete uložit a budete mít plnohodnotný program, jehož začátek lze provést z pracovní plochy. Nyní se snažte přijít na to sami, že je třeba přepsat v tomto kódu tak, aby byl program rozdělen dvěma čísly a ne složenými. Tip: Musíte změnit typ dat. Níže uvedené video ukazuje podobný příklad, ale v Delphi 7, ne Lazarus.
Mnoho programátorů DELPHI, uložení nastavení Ini. Ve svých programech. Použití této metody, v méně závažných projektech, je třeba se vyhnout, protože limity v pružnosti, která zabraňuje dalšímu rozšíření programu. Stojí za to říkat, že takový přístup je zcela populární, vzhledem k jeho snadnému použití a přítomnosti vestavěných prostředků na vývojové prostředí.
Ideální volba pro ukládání nastavení programu je však strukturována Xml. Soubory. Jejich výhodou je, že počet parametrů nemusí být stanoven. Chcete-li to lépe pochopit, zvažte konkrétní příklad.
V programu USERSEARCH, když kliknete na nahrávání, zobrazí se kontextová nabídka, která zobrazuje seznam bodů. Tyto položky jsou příkazy, které jsou zase staženy z souboru nastavení. V případě, že byla nastavení uložena v Ini. Soubor by mohl program ukládat a načíst určitý počet příkazů, například 10 nebo 50. Jakmile budete potřebovat důležitější, budete muset kód přepsat a odpovídajícím způsobem jej zkompilovat.
Použití přístupu Xml. Soubory, budeme mít možnost stahovat všechny parametry sekce dynamicky. Ke všem, konfigurační soubor se stane elegantnější, bez nadměrného číslování parametrů. Nicméně, standardní nástroje pro práci s Xml. Delphi má mnoho nevýhod, takže doporučuji používat standardní knihovnu Msxml.. Obvykle je to výchozí část rodinných systémů Windows.
Pro připojení Msxml.Musíme vytvořit soubor rozhraní se seznamem všech funkcí importem ze serveru COM. Jak importovat rozhraní je napsáno Nedostatek podrobných článků, doporučuji stáhnout soubor Msxml2_tlb.pas. Již připravené k použití. Po stažení souboru jej umístěte vedle svého projektu nebo hodte do složky Delphi lib lib. Všechny vytvořené programy tak budou moci používat modul. Msxml., Stačí přidat MSXML2_TLB k použití.
Pro přehlednost zvažte následující příklad aplikace této knihovny:
Postup LoadData; Var xmldoc: Domdocument; Kořen: ixmldomElement; Začněte xmldoc: \u003d codomdocument.create; Xmldoc.load ("settins.xml"); Kořen: \u003d xmldoc.documentelement; Showmessage ("velikost / šířka"). Text); Kořen: \u003d nil; XMLDOC: \u003d nil; konec;
Nejprve je vytvořena instance třídy Domdocument, po kterém je obsah souboru Settings.xml načten do paměti. Jako podle normy Xml. Soubor musí obsahovat kořenový tag (v tomto případě konfigurace), pak se musíme dostat pomocí funkce Dokument. Pak obsah obsahu mezi značkami
Zde se použije metoda SelectSinglende, která vezme řetězec jako parametr.
Vítejte! Tento blog je věnován internetu a počítačům, a přesněji, byli jim věnováni.
Pravděpodobně je okamžitě vidět, že mnoho let se na místě objevilo mnoho let. Ano, toto je osud většiny blogů. Jakmile byl tento projekt ambiciózním podnikem, a autor, stejně jako v mnoha dalších, kteří v té době napsal, byly rozsáhlé plány stát se jedním z nejlepších ruských bloggerů. No, pokud se podíváte, pak z těchto blogů, které byly vytvořeny současně s důlem, nejvíce již rozpustil věčnost. A já jsem se stal chybějícím časovým blogem. Takže ano, to již není aktualizováno. I když jsem kdysi vyhrál na těchto stránkách v soutěži 2011 blog.
Dokonce jsem měl ten nápad odstranit to všechno, ale pak jsem revidoval staré materiály, a uvědomil si, že by mohli být pro čtenáře stále užitečné. Ano, některé články jsou zastaralé (pokud mám dostatek síly, dostanou příslušné známky), ale místo, například může být užitečné pro začátečníky - zde si můžete přečíst o základních pojmech internetu, naučit se přizpůsobit přizpůsobení Internet, Windows nebo dokonce rozhodnout jít do Linuxu. Tak se podívejte na záhlaví a vyberte ten, který je pro vás vhodný.
A koneckonců doufám, že je to více než jen blog, ale skutečný internet průvodce. Stránka naleznete v režimu adresáře, kde jsou všechny dostupné články strukturovány kategoriemi. A kdo ví možná, nové výrobky se začnou objevovat zde.
Sander.
Picodi.ru je slevový portál z mezinárodních kupónů, polského experta na úsporu a levné nákupy. Poláci jsou považovány za jedno z nejekonomičtějších národů na světě, proto není překvapující, že tento typ projektu se rozrostl z polského startu Kodyrabatowe.pl. Co může být užitečné pro tento portál pro obyčejný internetový uživatel v Rusku?
Moderní telefony Android jsou více než telefony. Zvyknete si na sadu nainstalovaných programů, do historie hovorů a textových zpráv, sbírek fotografií a hodně. Ale čas přejde, a plně uspořádané zařízení se začne zpomalit, bug, nebo jednoduše ztratí prezentovatelnou zobrazení, protože štípací pouzdro nebo škrábance na obrazovce. Existuje otázka výběru nového telefonu a změna telefonu Android. A pokud otázka volby, nyní budeme obejít večírek, pak "Stěhování" do nového telefonu zůstává vážným problémem - absolutně nechci spustit všechna data od nuly. Tady budeme dnes hovořit.
Většina čtenářů tohoto blogu, s největší pravděpodobností čelil verzím řízení verzí a nebude v blízké budoucnosti přijít. A promiň. Tento extrémně uživatelsky příjemný vynález je široce používán programátory, ale podle mého názoru by to mohlo být velmi užitečné a těm, kteří aktivně pracují s texty. Ale pravděpodobně neexistuje žádný systém řízení verzí, což by bylo snadné začít používat pro "Office" (Microsoft Office) práce. Přesto si myslím, že materiál uvedený v článku může být zajímavý pro všechny čtenáře.
Pokud jste přemýšleli o tom, jak z televizního sledování filmů přes síť a přistupovat k Internetu, tento článek je pro vás. Ne, vím, že některé televizory mají funkčnost chytrého televize, ale nikdy jsem neviděl pracovat dobře. Zřejmě proto společnost Google nedávno prokázal zcela ohromující zařízení, okamžitě skončilo pocitem. Mluvíme o Media Streamer Chromecast (Chromkast), perfektnější a cenově dostupnější verzi loňského oblíbeného hráče Nexus Q.
Dongle CHROMKAST, jejichž rozměry nepřesahují 2 palce, se připojují k HDMI portu televizoru a umožňuje si vychutnat sledování webového obsahu streamování. Chcete-li ovládat Streamer, můžete použít libovolné zařízení (tablet, PC, Smartphone) na základě operačního platformy IOS, Windows, Android nebo Mac OS.
Tento článek je věnován paměťovému zařízení systému Android, problémy, které mohou vzniknout v důsledku jeho nedostatku a jak je vyřešit. Já sám jsem neměl tak dávno, že můj telefon Android začal pravidelně vydávat zprávy o nedostatku paměti při pokusu o vytvoření konkrétní aplikace. To, co bylo pro mě velmi zvláštní, navzdory skutečnosti, že na popisu na trhu by měl být asi 16 GB, a také tento objem zvýšil pomocí další paměťové karty. Nicméně, problém byl a musel jsem důkladně tinker, než jsem našel správné řešení, které nevyžaduje příjem kořenového přístupu nebo úplné obnovení telefonu do výrobního stavu.
V poslední době je hodně pozornosti věnována budování e-business systémů, nebo jak jsou také nazývány - B2B (podnikání k podnikání). Vzhledem k doporučením o výstavbě systémů streamování výměny koordinačních internetových technologií těla - www konsorcium: Důraz je kladen na technologie XML a budování systémů výměny dokumentů XML.
Výhodou použití XML v e-businessu je vysoce účinnost systémů B2B při nízkých nákladech pro jeho vytvoření díky jasné a vizuální reprezentaci strukturovaných informací, schopnost používat moderní síťové protokoly a vytváření obchodních systémů v reálném čase.
Nezávislost prezentace informací ve formě dokumentů XML umožňuje odlišné, účastnit se elektronického obchodu, vyrábět nezávislé od sebe.
Ve všech systémech je výměna obvykle postavena stejným schématem pomocí požadavků HTTP. Protokol SSL se použije jako protokol SSL (ale to je samostatné téma).
Jedním z možných možností pro zpracování zpráv XML je vybudování BIN / CGI (ISAPI) -NEWS nebo COM (server) komponenty tvořících nebo zpracovávají dokumenty XML.
Na jedné straně aplikace působí jako klient, který v režimu post vydává dotaz HTTP, na druhé straně, je webový server na straně, jehož zpracovává dotaz a odpověď. Výměna informací používá dokumenty XML.
Jednou z nejúčinnějších možností implementace je využití existujícího analyzátoru XML podporující model DOM. Takový parser je distribuční dodávka Win`98 nebo nedílnou součástí IE 4.7 a vyšší (pro Win`95) a představuje server COM, který se nachází v knihovně MSXML.dll.
Model Component Object (COM) je zapouzdřená data a metody do jediné podstaty a způsob přístupu k jejich přístupu přes systém rozhraní. Delphi je prostě přístupný přístup k třídám objektu COM (v jednom serveru COM může být zahrnuta několik tříd. Přístup k objektům se provádí inicializací instance třídy prostřednictvím systému rozhraní. Popis rozhraní se provádí jazykem definice rozhraní (IDL), který je možné automaticky provést prostředky média.
Delphi znamená imports z serveru COM msxml.dll.Soubory popisu rozhraní IDL jsou postaveny a soubor binární popis typu knihovny je TLB. Tato operace se provádí prostřednictvím systému System: Projekt | Typ Knihovna Import:(Obrázek 1). Zobrazí se následující dialogové okno (Obrázek 2), ve kterém chcete vybrat objekt COM (v našem případě je objekt registrován jako "Microsoft.xmldom (verze 2.0)") a vytvořit soubor TLB (tlačítko Vytvořit jednotku.). Pomocí souboru TLB generuje prostředí "PaskAlevsky" Popis souboru COM Server - msxml_tlb.pas
Soubor MSXML_TLB.PAS popisuje všechna rozhraní, konstanty a servery COM.
Pro přístup k objektům prvku COM je nezbytné ve směrnici Použití.přidejte název souboru knihovny (MSXML_TLB.PAS). Níže je nejjednodušší program, který používá standard Standard MSXML.dll analyzátor, který stahuje dokument XML a zobrazí jej v prvku textového pole Memo1.
použití. Okna, zprávy, sysutily, třídy, grafika, ovládací prvky, formy, dialogy, oleserver, msxml_tlb, stdctls; typ TForm1 \u003d. třída(TFORM) Button1: tbutton; MEMO1: TMEMO; postup. Tlačítko1Click (odesílatel: Togject); konec; var. Form1: TFORM1; implementace ($ R * .dfm) Postup.TFORM1.BUTTON1CLICK (odesílatel: Togject); // Deklarace objektu Soklass Object Domdocument; var.codoc: Codomdocument; // třídy, v souladu s rozhraním idomdocumentu; var.DOC: IXMLDOCENT; začít. // Vytvoření instance objektu Domdocumentu; DOC: \u003d Codoc.Create; // volání způsobu režimu instance objektu Domdocument; Doc.load ("data.xml"); // Přístup k instanci vlastnosti XML objektu Domdocument; MEMO1.TEXT: \u003d doc.xml; konec; konec.DOM CONCEPT - model dokumentu dokumentu
Každý dokument XML je reprezentován jako sada množiny objektů (tříd), se kterým je možný přístup k jednotlivým prvkům (objektová pole). Dom - Rozhraní popisuje přístup k objektům a součásti DomSring nebo znaky znaků nebo oddělených XML prvků dokumentu: DomFragmentelement, Domnode, Dodelement.
Následující jsou nejdůležitější vlastnosti a metody Xmldomdocument, Xmldomnode, Xmldomnodelist. Je třeba poznamenat, že model msxml.dll xml analyzátor, analyzátor msxml.dll xml, prezentovaný níže, je používán analyzátorem msxml.dll xml, než je konsorcium DOM schválený modelem W3C.
Úplnější popis objektů rozhraní DOM lze nalézt na
Xmldomdocument object. | |
Představuje nejvyšší úroveň hierarchie objektů a obsahuje metody práce s dokumentem: jeho stahování, analýza, vytváření prvků, atributů, komentářů v něm atd. . | |
Vlastnosti | |
Async. | Vlastnost Identifikace aktuálního režimu zpracování |
ParseError. | Vrátí odkaz na objekt zpracování chyb xmldomparseError |
Povolit ověření dokumentu. | |
url | Vrátí adresu URL dokumentu |
dokument | Obsahuje odkaz na kořenový prvek dokumentu jako objekt xmldomement. |
Metody | |
zatížení (adresa URL) loadxml (Xmlstring) |
Načte dokument XML |
uložit (Objtarget) | Uloží dokument XML v souboru |
pŘERUŠIT. | Přerušení procesu stahování a zpracování dokumentu. |
createatTribute (jméno) | Vytvoří nový atribut se zadaným názvem aktuální položky. |
kreatenode (typ, název, namespaceuri) | Vytvoří uzel zadaného typu a názvu |
createelement (tagname) | Vytvoří prvek dokumentu se zadaným názvem. |
createTextNode (data) | Vytvoří text uvnitř dokumentu |
getelementsbytagname (tagname) | Vrátí odkaz na sběr položek dokumentu se zadaným názvem |
nodefromid (idstring) | Vyhledávací prvek podle identifikátoru |
Xmldomnode objekt | |
Xmldomnode objekt, který implementuje základní domovné rozhraní Uzel., Navržen tak, aby manipuloval s odděleným uzlem stromu dokumentu. Jeho vlastnosti a metody umožňují přijímat a měnit úplné informace o aktuálním uzlu - jeho typu, jméno, celé jméno, její obsah, seznam dětských prvků atd. | |
Vlastnosti | |
nodename, Sokename. | Vrátí název aktuálního uzlu. |
předpona. | Vrátí předponu oboru názvů. |
datový typ | Definuje typ obsahu aktuálního uzlu |
nodetype, nodetypestring. | Vrátí typ aktuálního uzlu: |
atributy. | Vrátí seznam atributů aktuálního uzlu jako kolekce Xmldomnamendemap. |
tEXT. | Vrátí obsah aktuální podpory ve formě textu. |
xml. | Vrátí XML reprezentaci aktuální podpory. |
nodevalue. | Vrátí obsah aktuálního uzlu. |
childnodes. | Vrátí seznam dětských prvků jako Xmldomnodelist. |
první, Lastchild. | Vrátí prvního / posledního podřízeného prvku |
předchozí předchozí, nextsibling. | Vrátí předchozí / následující ošetřovatelský prvek. |
parentNode. | Obsahuje odkaz na rodičovský prvek. |
vlastníkodocument. | Vrátí ukazatel na dokument, ve kterém je aktuální uzel umístěn. |
Metody | |
appendChild (NewChild) | Přidá nový podřízený prvek do aktuálního uzlu. |
iNSORTBEFORE (NewChild, RefChild) | Vloží dětský uzel, který má v aktuálním subtree "vlevo" uzlu určeného parametrem RefChild. |
klonenode (hluboký) | Vytvořte kopii aktuálního prvku. |
getAtribute.(Název) getAttributenode. (Název) sETATETRIBUTE (název, hodnota) setAttributenode (XMLDOMATTRIBUTE) |
Přístup k atributům (vytváření, čtení, psaní) objektu. Jméno - název atributu, hodnota - jeho hodnota. Vrátí hodnotu objektu XMLDOMATTRIBUTE. |
lepisleChild (NewChild, Oldchild) Odbojovec (Oldchild) | Nahrazení oldchild předmětu aktuálního seznamu dceřiných společností na NewChild. Odstranění objektu OldChild |
selectNodes SelectSinglende (Pagringstring) | Vrátí objekt xmldomnodelist vybraný podle vyhledávacího vzorku nebo prvního uzlu |
transformnode (Stylíš) transformNodetObject (Stylesheet, OutputObject) |
Přiřazuje tabulku ve stylu pro podporu aktuálního uzlu a vrátí řetězec - výsledek zpracování. Odkaz na objekt Domdocument je vysílán jako parametr, ve kterém jsou umístěny pokyny XSL. |
Pomocí XML v podnikání.
Pro jasnější obrázek je nutné vysvětlení a proč je to vše nezbytné s tím, co pochopit, jak to funguje:
Při budování systému B2B nebo firemního ERP při organizaci informační výměny dokumentů XML mezi podniky nebo pobočkami Prom-I, efektivně osvědčený informační systém se používá na základě dostupných webových serverů na protokolech HTTP.
Na jedné straně aplikace působí jako klienta, který v režimu Post vydává dotaz HTTP, na druhé straně webový server je na straně, na které je požadavek zpracován a odpověď. Dokumenty XML se používají jako výměna.
Například v jednoduchém firemním ERP systému účetního programu (ACS účetnictví) je nutné vytvořit určitou žádost o fakturu a převést ji na pobočku, která má sklad (ACS Warehouse). Umění je podobným nastavením problému při vytváření B2B systému, když podnik požadavky požadavků na dostupnost produktů (provádí objednávku na nákup) od dodavatele V.
Podnik A a jeho program působí jako klient. Sklad slouží dodavateli, který má komplex skladiště BD na serveru SQL Server. Exchange se provádí prostřednictvím firemního dodavatele webového serveru V.
Níže je následující typický exchange algoritmus:
Obrázek 3.
- Podnik A.iniciátiva proces A.(Objednávka produktu), který funguje jako webový klient.
- Proces A.generuje dokument XML (například fakturu) a přenáší jej jako dotaz Post HTTP na server dodavatele webu V. Jako URI - použitý identifikátor zpracování. URI může být stejná jako u všech typů dokumentů nebo jednotlivců pro každý typ. To vše závisí na struktuře serveru B2B (Web).
- Webový server analyzuje požadavek a generuje server Proces B.Předáním XML dokumentu jako parametr.
Proces na webovém serveru je spuštěn a zpracován buď jako stránka ASP, CGI (ISAPI) - aplikace nebo Java Sevrlet (serverová aplikace) - Proces B.- Generuje požadavek na databázový server SQL.
- SQL Server činí potřebné operace v databázi, formulá odpověď a vrátí jej. Proces B..
- Na odpovědi z serveru SQL Proces B. Generuje dokument XML (odpověď) a umožňuje jako odpověď na požadavek HTTP do klientské aplikace.
- Dále, v závislosti na situaci na straně klienta, vytvoří se nový dotaz HTTP nebo končí relace.
Několik slov o organizaci správy dokumentů.
Obecné pravidlo vývoje XML Exchange System je:
- za prvé- Vývoj okruhu toku elektronických dokumentů a jejich struktury;
- za druhé- vývoj tabulek funkcí procesů (podprocesy) tj. Jakou funkci v souvislosti s tímto dokumentem XML bude realizovat každý proces.
Každý dokument XML, jako dokument HTML, měl by se skládat ze záhlaví zprávy (Informační vězně) a tělo zprávy (pro dotaz tyto informace orámované označením reagovat na požadavek). Aby byl dokument XML správně vytvořen, je nutné například pro jeho dvě komponenty "záhlaví" a "požadavek" pro zarámování značek. Pohled na standardní dokument je uveden níže:
Název (obrázek 4), na rozdíl od HTML dokumentu, by měl obsahovat různé druhy servisních informací, včetně informací o typu dokumentu vysílaného a zpracování procesu. Informační zpracování dokumentu je přijato, tj. Smysluplnou část je orámována značkou. Je třeba poznamenat, že struktura záhlaví by měla být sjednocena pro všechny typy dokumentů.
Pro proces běžící serverem je algoritmus zpracování s výhodou (ale není nutné) stavět následujícím způsobem:
Obrázek 6.
Některé hlavní okamžiky při vytváření klientské části
Jak již bylo vysvětleno, při vytváření dokumentu XML používá svou prezentaci ve formě modelu DOM. Níže je uveden příklad textu textu Delphi programu zpráv zprávy XML zprávy.
postup.Thread1.HeaderCreate (odesílatel: togject); var. // Vyhlášení tříd je potřeba k vytvoření Codoc: Codomdocument; // xmldomdocument object. Doc: Domdocument; R: IxmldomElement; Uzel: ixmldomElement; // DOMTEXT TXT: IXMLDOMTEXT; // domattribute attr: ixmldomattribute; začít. // Vytvoření DOM dokumentu DOC: \u003d Codoc.Create; Doc.set_async (false); // počáteční iniciační DOM dokument Doc.loadxml ("Je třeba poznamenat, že vyhlášení kodexu: CODOMDocument a doc: Domdocument proměnná, jakož i vytvoření metody CREATE (DOC: \u003d Codoc.Create;) se provádí jednou. Prohlášení proměnné je v části popisu globálních proměnných, a nikoli v místním postupu, jak bylo prokázáno, že viditelnost v tomto příkladu (tj. Jeden globální proměnná typu programového modulu typu DomDocument).
Výsledkem výše uvedeného programu bude vytvořený záhlaví, ve vztahu k našemu příkladu dokumentu XML: znázorněný na obrázku 5.
Obrázek 5.
Obrázek 6.
Hlavní výhodou vysílání informací ve formě dokumentů XML je to, že je možné vytvořit zprávu pomocí nezávislé struktury tabulek v DBMS jak na přijaté, tak na přenášené straně. Pomocí našeho příkladu nechte přenést informace o fakturách podniku A, od DBMS struktury uvedené na obrázku 6
Chcete-li vytvořit dokument XML obsahující fakturu, původně postavený požadavek SQL (dotaz A) s informacemi o faktuře:
VYBRAT * Z faktury_general. Kde Fakturie \u003d: num VYBRATZboží, Quulity, Cena, Hz_cod Z.Zboží Kde Fakturie \u003d: num //: num - parametr, který určuje číslo faktury.Níže je součástí programu, který tvoří tělo dokumentu XML:
postup. Thread1.dataBodycreate (odesílatel: tobject); var. // třídy a xmldomdocument // Codoc: Codomdocument; // musí být globální, pro celý modul. // doc: Domdocument; Oznámení o domostřích R: IxmldomElement; // DOLELENCE; Uzel, uzel2: ixmldomElement; NODE3, NODE4: IXMLDOMELEMENCE; // DOMTEXT TXT: IXMLDOMTEXT; Str: řetězec; // Číslo faktury: celé číslo; - Globální proměnná - // Masching 987654 // Querya, Queryb: Tětiva; - globální proměnná, // zachování žádosti o požádání // Querya - žádost a obecné informace o faktuře // Queryb - dotaz b Informace o zboží popsaném v // faktuře (viz text) začít. Query.Close; // Viz text "Žádost A" Query.text: \u003d Querya; // spuštění požadavku Query.Execsql; Query.Open; // Získejte adresu kořenového prvku R: \u003d doc.get_documentElement; Node2: \u003d doc.Createelement ("žádost"); // vytvořit domočement (tag) Uzel: \u003d doc.Createelement ("faktura"); // přidání položky do kořene R.appendChild (uzel2); // přidání položky do Uzl2. AppendChild (uzel); // vytvořit domočement (tag) Node3: \u003d doc.Createelement ("depurture"); // přidání položky do Uzel. AppendChild (Node3); // Odvolání na pole "Depurture" STR: \u003d Query.fieldbyName ("depurture"). Prostor; // Vytvoření textového uzlu \u003d Hodnota pole // Hodnota přiřazení uzlu // textový uzel, variabilní str Node.appendChild (txt); // Podobné operace pro značkuV důsledku tohoto postupu se vytvoří následující text dokumentu XML:
Otevřená metoda se používá k vytvoření dotazu. IXMLHTTTREQUEST.:
postup. Otevřít (CONST BSTMETHOD, - typ metody \u003d "Post" Bstrurl, - adresa serveru URL Varasync, - asynchronní / synchronní komunikační režim \u003d TRUE BSTRUSER, - Uživatelské jméno pro ověřování BSTPSWORD) - HesloVytvoření serverové části zpracování dokumentů
Jak již bylo uvedeno dříve, zpracování požadavku HTTP lze provádět buď CGI aplikace nebo Java Servlets. Možné možnosti pro psaní stránek ASP. V tomto případě je však přenos dat možné pouze pomocí "GET" pomocí řetězce dotazu. Ačkoli, http zpracování požadavku na stránku ASP funguje efektivněji než aplikace CGI. Podle mého názoru však bez jakéhokoli rozdílu, jak zpracovat, a co je důležitější řešit otázku - jak vytvořit program zpracování a ne s tím, co znamená.
Pokud jsme přezkoumali možnosti formování dokumentu XML z předchozí kapitoly, pak úkol serverové aplikace je opakem dokumentů XML. Níže je součástí programu, který analyzuje dokument XML:
postup.Thread1.dataParser (odesílatel: tobject); var. Oznámení o domostřích R, fnode: ixmldomelement; STR, název souboru: řetězec; Parm: řetězec; // oznámení sokolů a Codocxml, Codocxsl, Codocresult: Codomdocument; // xmldomdocument object. XMLLDOC, XSLDOC, DRUSDDOC: Domdocument; // httpstr: řetězec; - globální proměnná obsahující řetězec dotazu HTTP Začít. XMLDOC: \u003d Codocxml.Create; Xmldoc.loadxml (httpstr); // Získejte adresu kořenového prvku R: \u003d doc.get_documentElement; // získání hodnoty prvku Fnode: \u003d r.Selectsinglenode ("// typedocument"); // Získejte hodnotu atributu ID \u003d "Objednávka" Název souboru: \u003d fnode.getattibute ("id"); // a vytvoření řádu názvu souboru.xsl Název souboru: \u003d název souboru + ". Xsl"; // Vytvoření dokumentu XSLDOC XSLDOC: \u003d Codocxsl.Create; Xsdoc.loadxml (název souboru); // Vytvoření dokumentu XMLDOC DreatDDOC: \u003d Codocresult.Create; // Nastavení režimu synchronního zpracování Resultdoc.set_async (false); // Instalace debutace kontroly VýsledekDoc.validateonparase: \u003d true; // Sbalit XMLDOC pomocí šablony XSL XMLDOC.TRANSFORMNOC, DRUSDDOC (XSLDOC, DRESTEDDOC); // Variabilní STR je přiřazen hodnotě textu // výsledný dokument. Str: \u003d výsledekDoc.text; // vyhledávací prvek Fnode: \u003d R.Selectsinglenode ("// foicenumber"); // a získání hodnoty prvku Parm: \u003d fnode.text; // zavírá žádost o přístup Query.Close; Query.text: \u003d str; // přiřazení hodnoty parametru Query.params.asstring: \u003d parm; // spuštění požadavku Query.Execsql; konec;Celý rozsah analýzy je aplikovat šablonu XSL, která je tvořena pro každý typ dokumentu individuálně. Výsledkem analýzy je řetězec dotazu SQL. V důsledku toho provede provedení generovaného řetězce dotazu SQL nezbytné změny v DBMS.
Výhodou použití analýzy přes šablonu je také ve skutečnosti, že ukazuje některá flexibilita dat, a kompletní nezávislost operace algoritmu z programového kódu je získána. Níže je uveden text šablony XSL, jak je použito pro zpracování typu dokumentu.
Vysvětlení výše uvedeného příkladu je třeba poznamenat, že použití párů značek a je formální, protože Po analýze by měl být v výsledném dokumentu XML přítomen alespoň jeden uzel. Metoda VýsledkyDoc.text přiřazuje hodnotu textu získané během analýzy dokumentu XML DocumentDoc. V tomto případě je hodnota vše, co jsou páry značek zarámovány a tj. Jsme vytvořili žádost SQL.
Dalším znakem psaní Program je třeba poznamenat možnost použití parametru SQL : num. Pomocí parametru umožňuje zjednodušit text šablony XSL. Definice Hodnota odpovídajících prvků uzlů dokumentu XML je stanovena zpočátku výběrem názvu odpovídajícího uzlu, například:
Stručně o XSL.
XSL Zkratka pochází z rozšiřitelného jazyka stylů - formátování tabulky stylu (XML data). Jak je zřejmé z rozšiřitelného jazyka (XSL) (XSL) (XSL) se používá pro formátování dat XML. Definice W3C XSL se skládá ze dvou částí:
- XSLT - XSL transformace. Jazyk používaný k převodu nebo formátu (transformace) XML dokumentů. Tak, pomocí XSLT, můžeme získat různé části více datových a datových formulářů.
- Formátování prvků. Tyto prvky zahrnují všechny prvky typografického data dat, poté, co byly zpracovány pomocí XSL. Používá se pouze pro vytvoření stránek HTML.
Pomocí XSLT můžeme vybrat data z souboru XML, které potřebujete, a uspořádat je ve formuláři poskytnout uživateli. Například v našem případě jsme transformovali data XML jako dotaz SQL. Classic XSL aplikace je obvykle formátování dat jako stránky HTML nebo vzácné reprezentace ve tvaru souborů RTF.
Soubor XSL popisuje šablonu (šablonu), podle které bude provedena konverze dat XML. Vrácení do XSL šablon, následující prvky mohou být přiděleny v XSLT (Směrnice):
XSL Směrnice | popis |
---|---|
xSL: Použít šablony | Směrnice, označující aplikaci příslušných šablon atribut vyberte \u003d "Jméno šablony" |
xSL: Atribut. | vytvoří stromu atributu a přidá ji do výstupního prvku, parametr názvu \u003d "" Atribut název ", jmenný prostor - URI na oboru názvů (předpona oboru názvů) |
xSL: Call-šablona | způsobuje šablonu, název atributu \u003d "Uri na šabloně" |
xSL: Vyberte si. xSL: Kdy. xSL: Jinak. |
výběr podle stavu XSL: Když Expr \u003d "Výpočet výrazu na skriptu", jazyk \u003d "Jazyk-jméno" test \u003d "Vypočítaný výraz" |
xSL: Komentář | generuje komentář k výstupnímu dokumentu |
xSL: Kopírovat xSL: kopie |
zkopíruje aktuální uzel ve výstupním zdroji nebo vloží fragment dokumentu do uzlu, kde se atribut Select \u003d "název zdroje uzlu" |
xSL: Element. | vytvoří výstupní prvek podle názvu, názvu atributu \u003d "Název prvku", namespace \u003d "URI odkaz na obor názvů" |
xSL: Pro-každý | re-aplikovat šablonu pro všechny uzly uzlů uzlů, vyberte atribut Seznam uzlů. |
xSL: Jestli. | kontrola podmínek je nastavena atributem testu jako výraz |
xSL: zahrnují | zahrnuje externí šablonu, atribut href \u003d "URI reference" |
xSL: Výstup | určuje výsledek výstupu, atribut metody může mít "xml", "html" nebo "text" |
xSL: Param. | určuje hodnotu parametru, atribut název \u003d "název parametru", vyberte \u003d "hodnota" |
xSL: Instrukce zpracování | vytvoří pokyny pro zpracování, název atributu \u003d "Název procesu procesu" |
xSL: Seřadit. | seřadí mnoho uzlů, atributy Select \u003d "Name Název", datový typ \u003d Typ dat ("Text" | "Číslo" | QName), Order \u003d Sort Směr ("vzestupně" | Descending ") |
xSL: StyleSheet. | definuje dokument XSL šablony, je kořenový prvek pro XSLT |
xSL: Šablona. | určuje šablonu XSL, název předpony URI \u003d "URI Prefix Atribut na název šablony", Match \u003d "Poznámka k uzlu, ke kterému se šablona vztahuje" |
xSL: Text. | generuje text do výstupního proudu, Disable-Output-escaping \u003d "Ano" nebo "Ne" atribut označuje schopnost generovat znaky ESC |
xSL: Hodnota | vloží hodnotu vybraného uzlu jako text, ukazatel SELECT \u003d "na atribut uzlu", ze kterého je hodnota přijata |
xSL: Proměnná | určuje hodnotu hranic proměnných, atribut název \u003d "název proměnné", vyberte \u003d "Vypočítejte hodnotu proměnné" |
xSL: s-param | platí parametr do šablony, atribut názvu \u003d "název parametrů", vyberte \u003d výraz pro výpočet aktuálního kontextu, výchozí hodnotu "." |
Závěr
Závěrem je třeba poznamenat, že pomocí standardního analyzátoru XML msxml.dll.není to jediné způsoby analýzy a vytváření dokumentů XML. Chcete-li například vytvořit dokumenty XML, abyste efektivně používali komponenty TpageProduser.a Ttableproduser.. Tento článek však zdůrazňuje jen šířku a možnost použití modelu DOM v praxi.
Autor bude velmi vděčný za zpětnou vazbu o relevanci tématu, celkový obsah, styl prezentace, stejně jako všechny ostatní komentáře, které pomohou dále zlepšit kvalitu sbírku článků a vydání knih, které pokrývá Předmět praktické strany použití XML dokumentů v e-commerce. Pro více informací o praktické stránce aplikace elektronických dokumentů se můžete poučit z www.edocs.al.ru na webových stránkách autora, je také plánováno umístit zdrojové texty a příklady.