Internet Derazalar Android
Kengaytirmoq

Delphi muhitida XML-dan foydalanish. Delphi XE Flack-da XML-ni yaratadigan XML hujjat ob'ekti modelidan foydalanish

Xush kelibsiz! Ushbu blog Internet va kompyuterlarga bag'ishlangan va aniqroq, ular ularga bag'ishlangan.

Ehtimol, ko'p yillar davomida ko'p yillar davomida ko'p yillar davomida ko'rinmaganligini ko'rish mumkin. Ha, bu eng ko'p bloglarning taqdiri. Ushbu loyiha shuhratparastlik ishi va o'sha paytda yozgan ko'plab odamlar kabi, eng yaxshi rus blogerlaridan biriga aylanishni rejalashtirishgan. Xo'sh, agar siz hozir ko'rib chiqsangiz, meniki bilan bir vaqtda yaratilgan bloglardan, ko'pchilik abadiy erigan edi. Va men vaqt blog etishmayotgan edim. Ha, endi yangilanmaydi. Garchi men ushbu saytda 2011 yil Blog raqobatida g'olib chiqqan bo'lsam ham.

Men hatto bularning barchasini olib tashlash g'oyasi bor edi, lekin keyin eski materiallarni qayta ko'rib chiqdim va ular hali ham o'quvchilar uchun foydali bo'lishlarini angladim. Ha, ba'zi maqolalar eskirgan (agar men etarlicha kuchga ega bo'lsam, tegishli belgilarni oladi), masalan, saytlar yangi boshlanuvchilar uchun foydali bo'lishi mumkin - bu erda siz Internetning asosiy tushunchalari haqida o'qishingiz, sozlashni o'rganasiz Internet, Windows yoki hatto Linuxga borishga qaror qiling. Shunday qilib, sarlavhalarga qarang va sizga mos keladigan birini tanlang.

Va, va bundan keyin, bu shunchaki blogdan, balki haqiqiy Internet qo'llanmasi. Sayt barcha mavjud maqolalar toifalar bo'yicha tuzilgan katalog rejimida topish mumkin. Va kim biladi, ehtimol, yangi sifatli maqolalar bu erda paydo bo'ladi.

Qumli

Picodi.ru xalqaro kuponlardan, arzon xaridlarni saqlash va arzon xaridlar bo'yicha polyak mutaxassisi. Qutblar dunyodagi eng tejamkor xalqlardan biri hisoblanadi, shuning uchun ushbu loyiha Polsha boshlang'ich Kodrabatowe.pl-dan o'sganligi ajablanarli emas. Ushbu portalda Rossiyada oddiy Internet foydalanuvchiga nima foydali bo'lishi mumkin?

Zamonaviy Android telefonlari telefonlarga qaraganda ko'proq. Siz o'rnatilgan dasturlar to'plamiga, qo'ng'iroqlaringiz va matnli xabarlaringiz tarixiga, fotosuratlar to'plamlari va ko'p narsalarni o'rganasiz. Ammo vaqt o'tgach, to'liq tartiblangan qurilma sekinlasha boshlaydi, xato yoki shunchaki ekranda tirnalgan holatda yoki tirnalganligi sababli ko'rinadigan ko'rinishni yo'qotadi. Yangi telefonni tanlash va Android telefonini o'zgartirish masalasi mavjud. Agar tanlashni istasa, biz hozir partiyani chetlab o'tamiz, keyin "ko'chib o'ting" yangi telefonga jiddiy muammo bo'lib qolmoqda - men mutlaqo ma'lumotlarni noldan boshlamoqchi emasman. Bu erda biz bugun bu haqda gaplashamiz.

Ushbu blog o'quvchilarining aksariyati, ehtimol, hech qachon versiyalarni boshqarish versiyalariga duch kelishadi va yaqin kelajakda bo'lmaydi. Kechirasiz. Bu juda foydali ixtiro dasturchilar tomonidan keng qo'llaniladi, ammo menimcha, bu juda foydali va matnlar bilan faol ishlaganlar uchun juda foydali bo'lishi mumkin. Ammo, ehtimol, endi versiyani boshqarish tizimi yo'q, "Office" (Microsoft Office) uchun foydalanishni boshlash oson. Shunga qaramay, menimcha, maqolada keltirilgan material barcha o'quvchilarga qiziqarli bo'lishi mumkin.

Agar siz televizor tomosha qilayotgani va Internetga kirish haqida o'ylasangiz, ushbu maqola siz uchun. Yo'q, men ba'zi televizorlar Smart TV funktsiyasiga ega, ammo men buni yaxshi ko'rmaganman. Aftidan, Google-ning yaqinda mutlaqo ajoyib qurilmani namoyish etdi, darhol sensatsiya bilan yakunlandi. Biz ommaviy axborot vositalarini oqimli xomekast (XROMKAST), o'tgan yilgi ma'qullangan va arzon versiyasi haqida gapiramiz.

Dongle Chrosusst, ularning o'lchamlari 2 dyuymdan oshmaydigan o'lchamlari, televizorning HDMI portiga ulanadi va sizga Internet tarkibidagi veb-tarkibni tomosha qilishni yoqtirishga imkon beradi. Oqimli dasturni boshqarish uchun siz iOS, Windows, Android yoki Mac OS operatsion platformalariga asoslangan har qanday qurilma (planshet, kompyuter, smartfon) dan foydalanishingiz mumkin.

Ushbu maqola Android tizim xotirasi moslamasiga, uning etishmasligi va ularni qanday hal qilish uchun yuzaga kelishi mumkin bo'lgan muammolar. Men o'zim android telefonim ma'lum bir dasturni o'rnatishga urinayotganda, xotira etishmovchiligi haqida muntazam ravishda xabarlar chiqara boshladi. Bozor haqidagi tavsif bo'yicha taxminan 16GB bo'lgan bo'lishi kerakligini va qo'shimcha xotira kartasi yordamida men ham ushbu jildni oshirganiga qaramay men uchun juda g'alati edi. Biroq, muammo, men ildizga kirish yoki telefonni zavod holatiga to'liq tiklashni talab qilmaydigan to'g'ri echimni topgunimcha, men muammoli echimni topdim.

Yaqinda e-biznes tizimlarini yaratishga katta e'tibor beriladi yoki ular deb nomlanganidek - B2B (biznes uchun biznes). Tananing Internet texnologiyalarini muvofiqlashtirishning birja tizimlarini qurish bo'yicha tavsiyalar - www Konortsium: XML hujjatlari va XML hujjatli almashinuv tizimlarini qurish bo'yicha ta'kidlangan.

E-Biznes-dan foydalanishning samaradorligi - bu tuzilgan ma'lumotlarning aniq va vizual vakili, zamonaviy tarmoq protokollaridan foydalanish va real vaqt rejimlarini yaratish qobiliyati tufayli B2B-ni yaratishning arzon narxlarida.

XML hujjatlar shaklida ma'lumot olishning mustaqilligi har xil, elektron biznesda ishtirok etish, bir-biridan mustaqil mahsulotni ishlab chiqarishga imkon beradi.

Barcha tizimlarda birja odatda HTTP so'rovlaridan foydalangan holda bir xil sxema bilan quriladi. SSL protokoli SSL protokoli sifatida qo'llaniladi (lekin bu alohida mavzu).

XML xabarlarini qayta ishlashning mumkin bo'lgan variantlaridan biri bu ISL / CGI (ISAPI) -Nge yoki com (Server) komponentlarini XML hujjatlarini shakllantirish yoki qayta ishlashdir.

Bir tomondan, ariza post rejimida HTTP so'rovi chiqaradi, boshqa tomondan, so'rovni qayta ishlash va javob qayta ishlash va javob qayta ishlangan veb-server hisoblanadi. Axborot almashinuvi XML hujjatlaridan foydalanadi.

Eng samarali amalga oshirish variantlaridan biri bu Mavjud XML parserni qo'llab-quvvatlaydigan Mavjud XML parserdan foydalanish. Bunday parser bu Win '98 yoki IE 4.7 va undan yuqori (Win '95 uchun) ning ajralmas qismi (Win '95) MSXML.dll kutubxonasida joylashgan com serverini tarqatishdir.

Ob'ektni (com) komponentlar modeli (com) interfeys tizimi orqali foydalanishning bir mohiyati va usullariga usoqlangan ma'lumotlar va usullar bir mohiyat va usullarga kiradi. Delphi Ob'ekt sinflariga kirish huquqiga ega (bir nechta sinflar bitta sinflar bitta sinfga kiritilishi mumkin). Ob'ektlarga kirish sinf instantsiyasini interfeys tizimi orqali boshlash orqali amalga oshiriladi. Interfeyslarning tavsifi vositasi avtomatik ravishda vositalarni avtomatik ravishda amalga oshirish mumkin bo'lgan interfeys ta'rifi (IDL) tomonidan amalga oshiriladi.

Delphi com serveridan importni anglatadi msxml.dll.Idl interfeysi tavsifi quriladi va kutubxona turining ikkilik tavsifi tlb. Ushbu operatsiya tizim menyusida amalga oshiriladi: Loyiha | Kutubxonada olib boriladigan import:(1-rasm). Quyidagi dialog oynasi paydo bo'ladi (2-rasm), unda siz Ob'ektni tanlamoqchi bo'lgan (bizning holatda ob'ekt "Microsoft.XMLldom" (2.0 versiyasi) "sifatida ro'yxatdan o'tkaziladi") va TLB faylini yarating (tugmani bosing) Jihozni yarating.). TLB faylidan foydalanib, atrof-muhit "paskkalevskiy" faylini ishlab chiqaradi COM serveri tavsifi - MSXML_TLB.PAS

Msxml_tlb.pas fayli barcha interfeyslar, konstantalar va com serverlarini tavsiflaydi.

Com element ob'ektlariga kirish uchun ko'rsatmada kerak Foydalanadi.kutubxona ma'lumotlari faylining nomini qo'shing (MSXML_TLB.PA). Quyida XML hujjatni yuklab olgan va uni eslatuvchi MSM1 matn maydonchasida namoyish etadigan MSXML-ning eng oddiy dasturi mavjud.

foydalanadi. Windows, xabarlar, SyeTutillar, sinflar, grafika, boshqarish vositalari, shakllar, dialoglar, oesverver, msxml_tlb, Stdctrls; tur TFF1 \u003d. sinf(Takkik) tugmasi1: Tboutton; MEMO1: TMEMO; jarayon. Tugmachasini bosing (jo'natuvchining: yuk tashuvchi); oxiri; var. Forma1: TFF1; amalga oshirish ($ R * .dfm) Jarayon.Tform1.button1click (jo'natuvchi: tog '; // Soklass Ob'ekt domdomeni deklaratsiyasi; var.kodoc: kodmododum; // imoddokument interfeysi bilan mos keladigan sinf; var.Doc: IXMDOCKON; boshlanishi. // domdookent ob'ektining namunasini yaratish; Doc: \u003d kodoc.create; // domdookent ob'ekti misolining rejim usuliga qo'ng'iroq qiling; Doc.oad ("ma'lumotlar.xml"); // domdoment ob'ektining XML xususiyat namunasiga kirish; Memo1.Text: \u003d doc.xml; oxiri; oxiri.

DOM kontseptsiyasi - Ob'ekt hujjati modeli

Har bir XML hujjati individual elementlar (ob'ektlar) ga kirish mumkin bo'lgan ob'ektlarning (sinflar) ko'pligi sifatida tasvirlangan. Dom-Interfeys oddiy domstratsiya yoki belgilar ob'ektlariga, hujjatning XML elementlariga kirishni yoki Hujjatning XML elementlarini ajratishni tavsiflaydi: domfragmentelement, domnody, distasyon.

Quyida XMLDOMDOCKENT, XMLLLDOMNODE, XMLLDOMNODELISTNING MUHIM XUSUSIYATLARI va usullari keltirilgan. Shuni ta'kidlash kerakki, quyida keltirilgan MSxml.dl XML analizator MSXML.Dl XML analizator MSXML.dl XML analizator MSXML.dl XML analizatoridan W3C modeli tomonidan tasdiqlangan.

Dom ob'ektlarining yanada to'liq tavsifi topilishi mumkin

XMLDOMDOCK ob'ekti
Ob'ekt ierarxiyasining yuqori darajasini va hujjat bilan ishlashning usullarini ifodalaydi: uni yuklab olish, tahlil qilish, elementlar, atributlar, sharhlar va boshqalar. .
Xususiyatlar
Async. Hozirgi ishlov berish rejimini belgilaydigan mulk
Parda XMDMOMPARSEROROEROR XAVFSIZLIKNI YOZIShI
Hujjatni tekshirishni o'chirish.
url Hujjatning URL manzilini qaytaradi
hujjatlar Hujjatning ildiz elementiga XMLDOMMYMECT ob'ekti sifatida ko'rsatilgan.
Usul
yuk (URL)
lowxxml (XMMFRING)
XML hujjatni yuklaydi
saqlash (objtarget) Faylda XML hujjatni tejash
bekor qilish. Hujjatni yuklab olish va qayta ishlash jarayonini to'xtatadi.
yurantik (ism) Joriy element uchun belgilangan nom bilan yangi atribut yaratadi.
createode (turi, ismi, nam) Belgilangan turdagi va sarlavhaning tugunini yaratadi
eRANIKA (Tagname) Ko'rsatilgan nom bilan hujjat elementi yaratadi.
creatnextNode (ma'lumotlar) Hujjat ichidagi matn yaratadi
getelinsbytagnam (taggume) Belgilangan nom bilan hujjat elementlari to'plamiga havolani qaytaradi
nadefroid (IDRING) Identifikator tomonidan qidirish elementi

XMLLDOMNOD ORGANI
XMLLDOMNode asosiy dom interfeysini amalga oshiradi Tugun., Hujjat daraxtining alohida tuguni bilan manipulyatsiya qilishga mo'ljallangan. Uning xususiyatlari va usullari, hozirgi tugun haqida to'liq ma'lumot olish va o'zgartirish imkonini beradi - uning turi, ismi, to'liq ismi, tarkibi, bolalar elementlari ro'yxati va boshqalar.
Xususiyatlar
nadename, Bazename. Joriy tugun nomini qaytaradi.
prefiks. Nomlar old prefiksini qaytaradi.
ma'lumotlar turi. Hozirgi tugunning tarkib turini belgilaydi
nodezip, nodetynesting Hozirgi tugun turini qaytaradi:
atributlar. XMLDOMNAMENMAP to'plamlari sifatida joriy tugunning atributlari ro'yxatini qaytaradi.
matn. Joriy yordam tarkibini matn shaklida qaytaradi.
xml Joriy yordamning XML vakilligini qaytaradi.
nodevalue. Joriy tugunning tarkibini qaytaradi.
bolalarni. XMLLDOMNODELISTA sifatida bolalar elementlari ro'yxatini qaytaradi.
finti, halokatli. Birinchi / oxirgi bolaning elementini qaytaradi
oldindan oldin, keyingi Oldingi / keyingi hamshiralik elementini qaytaradi.
ota-onalar. Ota-ona elementiga murojaat qiladi.
zolim Ko'rsatgichni joriy tugun joylashgan hujjatga qaytaradi.
Usul
appendchild (Nyutild) Hozirgi tugunning yangi bola elementlarini qo'shadi.
inverbucore (Nyutild, Refchdod) Bola tugunini joylashtiring, u joriy pastki qismida ko'rsatilgan tugun parametrining parametri tomonidan ko'rsatilgan tugunning "qoldi.
conenode (chuqur) Joriy element nusxasini yarating.
getattribut.(Ism)
getATTributnode. (Ism)
setattribe (ism, qiymat)
setattributeneNece (XMLLDOMATTREUT)
Atributlar (yaratish, o'qish, yozish) ob'ektlariga kirish. Ism - atribut nomi, qiymat - uning qiymati. XMLDOMATTREKET ob'ektining qiymatini qaytaradi.
mablag '(Nyutild, Eski, Eskild) RemovDechild (eski) Newild-dagi filiallarning joriy ro'yxatining eski ro'yxatining o'rniga. Eski ob'ektni olib tashlash
tanlangan tanlangan tanlanganlar (PIDTRING) Search naqshini yoki birinchi tugun tomonidan tanlangan XMLDOMNODELISTYISTYANI SAQLANG
transformator (Styesheet)
transcnodetBeve (Styleseet, ChiqishOthect)
Joriy tugunni qo'llab-quvvatlash va satrni qaytarish uchun uslub jadvalini tayinlaydi - qayta ishlash natijasi. Domadombekan ob'ekti bilan havola, XSL ko'rsatmalari joylashgan parametr sifatida uzatiladi.

Biznesda XML-dan foydalanish.

Aniqroq rasm uchun tushuntirish kerak va nega bu nima ekanligini tushunish uchun nima uchun kerak:

B2B yoki korporativ ERP tizimini qurishda, XML hujjatlari yoki reklama ixtisoslari o'rtasida ma'lumot almashishni tashkil etishda, samarali tasdiqlangan axborot tizimi mavjud bo'lgan Internet-serverlar asosida HTTT protokollarida mavjud bo'lgan veb-serverlar tizimi mavjud.

Bir tomondan, ariza post rejimida http so'rovi chiqaradi, boshqa tomondan, veb-serverni qayta ko'rib chiqiladi va javob qaytariladi. XML hujjatlari almashish sifatida ishlatiladi.

Masalan, buxgalteriya dasturi (ACS Buxgalteriya hisobi) oddiy korporativ ERP tizimida schyot-fakturani aniqlash va uni omborga (ACS omboriga) o'tkazadigan filialga o'tkazilishi kerak. San'at Tizimning B2B-ni yaratishda muammoning o'xshashligi, korxona talabnomaning mavjudligi (sotib olish uchun buyurtmani) etkazib beruvchi V. deb so'rab turgan vaqtni o'zgartiradi (sotib olish uchun buyurtma beradi).

A va uning dasturi mijoz sifatida harakat qiladi. SQL serverida omborda omborxonaga ega bo'lgan etkazib beruvchiga xizmat ko'rsatadi. Birja korporativ veb-server etkazib beruvchisi V.

Quyida quyidagi odatiy birja algoritmidir:


3-rasm.
  1. AR Korxonasi A.boshlanmoqda a. A.(Mahsulot buyurtma), bu veb-mijoz sifatida ishlaydi.
  2. A. A.xML hujjatini (masalan, hisob-fakturani) ishlab chiqaradi va uRI - dasturni qayta ishlash bo'yicha ilova identifikatoridan foydalaniladi. URI har bir turdagi barcha turdagi hujjatlar yoki shaxs uchun bir xil bo'lishi mumkin. Bularning barchasi B2B (Web) serverining tuzilishiga bog'liq.
  3. Veb-server so'rovni tahlil qiladi va serverni yaratadi Jarayon B.XML hujjatini parametr sifatida o'tkazib.
    Veb-serverdagi jarayoni boshlangan va jinsi sahifasi, CGI (ISAPI) - ilova yoki Java Everlet (Server ilovasi)
  4. Jarayon B.- SQL ma'lumotlar bazasi serveriga so'rov yuboradi.
  5. SQL serveri ma'lumotlar bazasida zarur operatsiyalarni amalga oshiradi, javobni shakllantiradi va qaytaradi. Jarayon B..
  6. SQL serveridan javobda Jarayon B. XML hujjatini (javob) ishlab chiqaradi va mijozlarga murojaat qilish uchun HTTP so'roviga javob sifatida ruxsat beradi.
  7. Bundan tashqari, mijoz tomonidagi vaziyatga qarab, yangi HTTP so'rovi shakllantiriladi yoki seans tugaydi.

Hujjatlarni boshqarishning tashkil etilishi haqida bir necha so'z.

XML almashinuv tizimining asosiy qoidasi:

  • birinchidan- elektron hujjatlar oqimini va ularning tarkibini rivojlantirish;
  • ikkinchidan- jarayonlar funktsiyalari (Subprosesses) I.E. XML hujjati har bir jarayonga nisbatan qanday funktsiya faoliyatini amalga oshiradi.

HTML hujjatiga o'xshash har bir XML hujjati xabar sarlavhasi (MA'LUMOT) va xabarlar tanasi (ushbu ma'lumotni talabga javob berish uchun belgilash uchun). XML hujjati to'g'ri shakllanishi uchun uning ikki komponenti uchun "sarlavha" va "so'rov" ni belgilash uchun, masalan, freymlarni freymlarga moslashtirish kerak. Standart hujjatning ko'rinishi quyida keltirilgan:

Sarlavha (4-rasm), HTML hujjatlaridan farqli o'laroq, turli xil xizmatlarning turli xil ma'lumotlarini o'z ichiga olishi kerak, shu jumladan tarqatilgan hujjat turi, shu jumladan, tarqatilgan hujjat turi va ishlov berish jarayoni to'g'risidagi ma'lumotlar. Hujjatni axborotni qayta ishlash qabul qilinadi, I.E. Muhim qism yorliq bilan tavsiflanadi. Shuni ta'kidlash kerakki, sarlavha tuzilishi barcha turdagi hujjatlar uchun birlashishi kerak.

Server tomonidan ishlayotgan jarayon uchun quyidagi hollarda qayta ishlash algoritmini qayta ishlash (lekin kerak emas):


6-rasm.

Mijoz qismini yaratishda ba'zi asosiy lahzalar

Yuqorida aytib o'tilganidek, XML hujjatini yaratish paytida uning vakili dom model shaklida taqdim etiladi. Quyida XML xabar sarlavhasi dasturining Delphi matni matni misolidir.

jarayon.Thtread1.Headercreater (yuboruvchi: tog '; var. // sinflar haqida e'lon qilish kerak Kodoc: kodmododum; // xlimdomDocenty ob'ekti Doc: domdocument; R: IXMMLLELELT; Tugun: Ixmldomelelement; // domstekst txt: ixmldomText; // dommattribue mutlati: ixlimldomatte; boshlanishi. // dom hujjatni yaratish Doc: \u003d kodoc.create; Doc.set_async (noto'g'ri); // Dastlabki boshlang'ich dom hujjat Doc. yuklashshxml ("
"); // dublni yaratish (teg<Yuboruvchi.>) Tugun: \u003d doc.createulluatsiya ("jo'natuvchi"); // matn tugunini yaratish "Typhoon" MChJ" TXT: \u003d doc.creatextext, ("" MChJ "MChJ" MChJ "; // tugunni tayinlash<Yuboruvchi.\u003e Qiymat // matn tuguni " "Typhoon" MChJ" Nodode.appendchch tugagan (TXT); // bir narsani qo'shish<Yuboruvchi.\u003e Hujjatning ildizida filial sifatida R.Appendchild (tugun); <Dan.> Tugun: \u003d doc.criteelement ("dan"); TXT: \u003d doc.creatextextode ("http://tayfun.ru/xml/default.asp"); Nodode.appendchch tugagan (TXT); R.Appendchild (tugun); // kabi shunga o'xshash operatsiyalar<Ga> Tugun: \u003d doc.criteelement ("ga"); TXT: \u003d doc.creatextextode ("http://irbis.ru"); Nodode.appendchch tugagan (TXT); R.Appendchild (tugun); // domelementni yarating () Tugun: \u003d doc.criteelement ("Tintuv"); // xlimdommattribe tugunni yaratish Att: \u003d doc.createattribute ("ID", "Buyurtma"); // Node.appendchchch (ATT); R.Appendchild (tugun); oxiri;

Shuni ta'kidlash kerakki, kodomoc: kodomatlar va doc: domdocument o'zgaruvchisi, shuningdek yaratish usulini yaratish (\u003d Codoc.Create;) bir marta amalga oshiriladi. O'zgaruvchining deklaratsiyasi ushbu misolda ko'rinishda ko'rsatganidek, global o'zgaruvchilar tavsifi (I.E. bir dastur moduli domdocument turidagi global o'zgaruvchini).

Yuqoridagi dastur natijasi yaratilgan sarlavhasi, XML hujjatining namunasi bilan bog'liq bo'ladi: 5-rasmda tasvirlangan.


5-rasm.


6-rasm.

XML hujjatlari shaklida ma'lumotlarni uzatishning asosiy afzalligi shundaki, u, shuningdek, olingan va uzatilgan tomonda bo'lgan jadvaldagi jadvallarning mustaqil tuzilishi yordamida xabarni shakllantirish mumkin. Misoldan foydalanish, korxonaning schyot-fakturalari to'g'risidagi ma'lumotlarni A-rasmda ko'rsatilgan strukturaning zarbasidan foydalanish talab qilinsin

Hisob-fakturani hisobga olgan holda schyot-fakturani o'z ichiga olgan XML hujjatini (A) schyot-fakturasi to'g'risida ma'lumot taqdim etish uchun:

Tanlamoq * Incoice_greal-dan Qayerda Invericenum \u003d: Num TanlamoqTovarlar, qiymatli, narx, hz_cod Dan.Tovarlar Qayerda Invericenum \u003d: Num //: num - schyot-faktura raqamini belgilaydigan parametr.

Quyida XML hujjatining organini shakllantirish dasturining bir qismi:

jarayon. Thtread1.DatabododCreatr (jo'natuvchi: tokcha); var. // sinflar va xlimdomdodument // Codoc: kodomatnomojum; // butun modul uchun global bo'lishi kerak. // doc: domdomen; // dublement ob'ektlarining e'lon qilinishi R: IXMMLLELELT; // domelement; Tugun, node2: ixmldomelelement; Node3, node4: ixtildomelelement; // domstekst txt: ixmldomText; Str: satr; // invoyinumber: butun son; - Jahon o'zgaruvchisi - // Masuring 987654 // querya, so'rovlar: Satr; - Global o'zgaruvchilar, // Talaba - so'rov va "Quierb" to'g'risidagi umumiy ma'lumotni saqlash / so'rov / so'rovnomalar to'g'risidagi umumiy ma'lumotni saqlash / so'rovnomada ko'rsatilgan tovarlar haqida ma'lumot boshlanishi. So'rov.cloz; // "A" matnida ko'ring So'rov.text: \u003d query; // bajarishni talab qilish So'rov .exeksql; So'rov.open; // ildiz elementi manzilini oling R: \u003d doc.get_documentlement; Node2: \u003d doc.criteelement ("So'rov"); // domelementni yarating (yorliq) Tugun: \u003d doc.kreateulte ("Hisob-faktura"); // ildizga elementni qo'shish R.Appendchild (Node2); // bir narsani qo'shish Node2. Ileendchchch (tugun); // domelementni yarating (yorliq) Node3: \u003d doc.createullue ("Obinma"); // bir narsani qo'shish Tugun. Ileendchchch (node3); // "Obinatsiya" maydoniga murojaat qiling Str: \u003d so'rov .fieldbyname ("Ob-shuv"). Asartring; // matn tugunini yaratish \u003d dala qiymati // The The TopSection qiymati // matn tuguni, o'zgaruvchan str Nodode.appendchch tugagan (TXT); // kabi shunga o'xshash operatsiyalar , , // , // (Db "Db" qabul qiluvchi ") Tugun: \u003d doc.createulluatsiya ("belgilangan joy"); // Ma'lumotlar bazasi maydonining nomi ismga mos kelmasligi mumkin Str: \u003d so'rov .fieldbyname ("qabul qiluvchi") .Astrlash; // Foydalanishning afzalligi bo'yicha TXT: \u003d doc.creatextext, (ko'chasi); // DBMMS XML interfeysini qo'llab-quvvatlaydigan DBMMSdan oldin dbms // Oracle 8i yoki Ms SQL 2000 Nodode.appendchch tugagan (TXT); ... // Tovarlarni spetsifikatsiya qilish uchun so'rovni shakllantirish // kirish so'rovini yoping So'rov.cloz; // "So'rov" matnida qarang, INFO. Mahsulotlar haqida Savol.Text: \u003d so'rov; // parametr qiymatlarini belgilash So'rov .pam.asinteger: \u003d invocuktumber; // bajarishni talab qilish So'rov2.Execsql; // so'rov ma'lumotlariga kirish huquqini ochish So'rov.open; // domelementni yarating (yorliq) Node3: \u003d doc.criteelement ("IMEMS"); // bir narsani qo'shish Tugun. Ileendchchch (node3); // barcha so'rovlar bo'yicha tsikl vaqt emas. E-ev. qilmoq. Node4 ni boshlang: \u003d doc.criteelement ("IMEM"); // bir narsani qo'shish Node3.Appendchild (node4); // Tag uchun ma'lumotlar avlod Str: \u003d so'rov.fieldbyname ("Narx"). Asadrat; TXT: \u003d doc.creatextext, (ko'chasi); Nodode.appendchch tugagan (TXT); ... // teglar uchun shunga o'xshash operatsiyalar , , oxiri; oxiri;

Ushbu protsedura natijasida XML hujjatning quyidagi matni shakllantirildi:


Ochiq usul so'rovni shakllantirish uchun ishlatiladi. Ixmmhtttrofe:

jarayon. Ochiq (Conc Btrmetrhod, usul turi \u003d "posti" bstrurl, - URL Varazyc Server Manzil, - Asencroncous Server Manzil \u003d Haqiqat bstuser, - Bostuser

Hujjatlarni qayta ishlashning server qismini yaratish

Yuqorida aytib o'tilganidek, HTTP so'rovini qayta ishlash CGI dasturlarini yoki Java serverli xizmatlarini amalga oshirishi mumkin. Asp sahifalar yozish uchun mumkin bo'lgan variantlar. Ammo bu holda, ma'lumotlarni uzatish faqat so'rov simidan foydalanib "olish" bilan amalga oshiriladi. Garchi, http sahifalarni talab qilish Sahifalarni so'rash CGI dasturiga qaraganda samaraliroq ishlaydi. Biroq, menimcha, hech qanday farq qilmasdan, qandaydir ishlov berish va bundan ham muhimi, qanday qilib qayta ishlash dasturini yaratish va nimani anglatishi bilan emas.

Agar biz avvalgi bobdan XML hujjatli shakllanish variantlarini ko'rib chiqsak, server dasturining vazifasi XML hujjatlarining aksi hisoblanadi. Quyida XML hujjatini tahlil qiladigan dasturning bir qismi:

jarayon.Thtread1.dateParer (jo'natuvchi: tokcha); var. // dublement ob'ektlarining e'lon qilinishi R, Fnode: Ixmldomelement; Str, Fayl nomi: satr; Parm: satr; // Soklassning e'lon va CodocxXML, CodocxSL, kodocResult: kodomatnoum; // xlimdomDocenty ob'ekti XMLDOC, XSLDOC, Natistnoc: domdomum; // httpstr: satr; - HTTP so'rov simini o'z ichiga olgan global o'zgaruvchi Boshlanishi. XMLDOC: \u003d Codocxxml.create; XMLDOC.OGHXML (httpstr); // ildiz elementi manzilini oling R: \u003d doc.get_documentlement; // element qiymatini olish Fnode: \u003d R.SelectsingLenode ("// Tumpolilik"); // atribut qiymatini oling \u003d "buyurtma" Fayl nomi: \u003d FNode.gettttribeti ("ID"); // va fayl nomini shakllantirish Fayl nomi: \u003d Filename + ". XSL"; // hujjat xsldoc-ni yarating XSLDOC: \u003d Codcxxsl.Create; Xsldoc. yuklashxml (fayl nomi); // xmldoc hujjatini yaratish ReadDoc: \u003d CodocResult.Create; // sinxron ishlov berish rejimini o'rnatish Natijaning natijasi.Set_async (noto'g'ri); // debyutka o'tkazish chekni o'rnatish ReadDoC.Validateonparag: \u003d TRUM; // XSL shablonining xmldoc colphse XMLDOC.TRANSFORNOC, Natijada (Xsldoc, Natiunddoc); // o'zgaruvchisining o'zgaruvchisi matn qiymatiga tayinlanadi // natijasida olingan hujjat. Str: \u003d natijaning natijasi; // qidiruv elementidir Fnode: \u003d R.SeleSinsingLenode ("// inociceNumber"); // va element qiymatini olish Parm: \u003d Fnod.Text; // kirish so'rovini yoping So'rov.cloz; Save.Text: \u003d Str; // parametr qiymatini belgilash So'rov .pamzing: \u003d parm; // bajarishni talab qilish So'rov .exeksql; oxiri;

ParRingning butun doirasi har bir hujjat uchun shakllangan XSL shablonini qo'llashdir. Tahlil natijalari SQL so'rovlar satridir. Natijada, yaratilgan SQL so'rovlari satrini ijro etish DBMMda zaruriy o'zgarishlarni amalga oshiradi.

Andoza orqali tahlil qilishning afzalligi shundaki, u ba'zi ma'lumotlar moslashuvchanligi va dastur kodeksidagi algoritmning to'liq mustaqilligi olinadi. Quyida XSL shablonining matni qayta ishlash uchun ishlatiladigan matnning matni.

Tabreg (dan, Terdics, tanadan) qiymatlar (" ", "", "") Tovarlarni kiritish (inomatumbum, ismi, narxi, sifati) qiymatlari (": raqam", ", "", " ")

Yuqoridagi misolni aytib o'tishda shuni ta'kidlash kerakki, teglar juftliklaridan foydalanish va rasmiy, chunki Natijada XML hujjatida kamida bitta tugun mavjud bo'lishi kerak. NatijaDoc.Text usuli XML hujjatli Natiunddoccoce tahlilida olingan matn qiymatini belgilaydi. Bunday holda, qiymatlar juft yorliqlar va i.e. Biz SQL so'rovini tuzdik.

Dasturni yozishning yana bir xususiyati, SQL parametridan foydalanish imkoniyati paydo bo'lishi kerak : raqam. Parametrdan foydalanish XSL shablonining matnini soddalashtirishga imkon beradi. Ta'rif Ushbu XM hujjatning tegishli elementlarining qiymatini dastlab tegishli tugunning ismini tanlash uchun aniqlanadi, masalan:

XSL haqida qisqacha

XSL qisqartmasi kengaytiriladigan stillar jadvalidan kelib chiqadi - Style Jami formatlash tili (XML ma'lumotlar). Ketely Stylseteet Tilidan (XSL) sarlavhasi aniqlanganidek, XML ma'lumotlarni formatlash uchun ishlatiladi. W3C XSL ta'rifi bilan ikki qismdan iborat:

  • XSLT - XSL Sproting. Tilni o'zgartirish yoki formatlash uchun ishlatiladigan (Tirik). Shunday qilib, XSLT-dan foydalanib, biz bir nechta ma'lumotlar va ma'lumotlar taqdimot shakllarining turli bo'limlarini olishimiz mumkin.
  • Elementlarni formatlash. Ushbu elementlar XSL-dan foydalanilgandan so'ng, tfografik ma'lumotlar dizaynining barcha elementlarini o'z ichiga oladi. Faqat HTML sahifalarni shakllantirish uchun ishlatiladi.

XSLT-dan foydalanib, kerakli XML faylidan ma'lumotlarni tanlashimiz va ularni foydalanuvchiga taqdim etish uchun ularni tashkil qilamiz. Masalan, bizning holatlarimizda biz XML ma'lumotlarini SQL so'rovi sifatida o'zgartiramiz. Klassik XSL arizasi odatda ma'lumotlarni HTML sahifalar yoki RTF fayllari ko'rinishidagi noyob vakillik qilishdir.

XSL fayli Andoza (shablon) ni tavsiflaydi, unga ko'ra, XML ma'lumotni qayta ishlash amalga oshiriladi. XSL shablonlariga qaytish, XSLT (ko'rsatmalariga) quyidagi elementlar ajratilishi mumkin:

XSL ko'rsatgi tavsif
xSL: Qo'llash-shablonlar Yo'nalish, tegishli shablon atributi qo'llanilishini ko'rsatadigan ko'rsatma \u003d "shablon nomi"
xSL: atributi. atribut daraxtini yaratadi va uni chiqish elementini yaratadi, ism \u003d atributi "parametrlari, nom bo'shlig'i parametri, nom bo'shlig'i - Uri (nomsampaese prefiks)
xSL: Call-shablon shablon, atribut nomi \u003d "URI shablonda URI" ni keltirib chiqaradi
xSL: tanlang.
xSL: Qachon.
xSL: aks holda.
xSL shart bo'yicha tanlov qilish: Qachon EXPR \u003d "Skriptulyatsiyani hisoblash",
til \u003d "Til nomi"
sinov \u003d "hisoblangan ifoda"
xSL: sharh chiqish hujjatida sharh beradi
xSL: nusxa
xSL: nusxa ko'chirish
chiqish manbasidagi joriy tugunni nusxalaydi yoki hujjat paragrafini tanlanganlik atributini tanlang \u003d "Manba tugunning nomi" nomi
xSL: element. ism va atribut nomi bilan chiqish elementini yaratadi
xSL: har biri uchun barcha novdalar ro'yxati tugunlariga shablonni qayta ko'rib chiqish, tugunlar ro'yxatini tuzing.
xSL: agar bo'lsa. shartlar Tekshirish shartnomasi information atributlari tomonidan belgilanadi
xSL: qo'shing tashqi shablonni, atributni o'z ichiga oladi @ "URI mos yozuvlar"
xSL: Chiqish chiqish natijalarini belgilaydi, uslub atributi "XML", "HTML" yoki "matn" bo'lishi mumkin
xSL: Param parametr qiymatini belgilaydi, ism \u003d "parametr nomi" atributi, -ni tanlang \u003d "Qiymat"
xSL: Ishlov berish bo'yicha ko'rsatma qayta ishlash bo'yicha ko'rsatmalar yaratadi, atribut nomi \u003d "Ism Jarayon ko'rsatmalar"
xSL: Saralash. ko'p ishlarni saralaydi, atributlar \u003d "tugunning ismi", ma'lumotlar turi \u003d "Raqam", "Saralash", "Oscencing"
xSL: Styleyheet. xSL shablon hujjatini belgilaydi, bu XSLT uchun ildiz elementi
xSL: shablon. xSL shablonini, ismni belgilaydi \u003d 'Uri prefiks atributi "Match \u003d" shablon qo'llaniladigan tugunga eslatma "
xSL: Matn. matnni ishlab chiqarish oqimiga, o'chirish-chiqish-Escapiting \u003d "Ha" yoki "Yo'q" atributlari ESC belgilarini yaratish qobiliyatini ko'rsatadi
xSL: qiymat tanlangan tugunning qiymatini matn sifatida kiritadi, Select \u003d "Tanlashning moslashishi" atributining atributi
xSL: o'zgaruvchi o'zgaruvchan chegaralarining qiymatini belgilaydi, atlati \u003d "o'zgaruvchan ism", -ni tanlang \u003d "O'zgaruvchining qiymatini hisoblang"
xSL: OLDIN joriy kontekstni, standart qiymati, standart qiymati, joriy qiymatni hisoblash uchun shablonga tegishli parametrni qo'llaydi.

Xulosa

Xulosa qilib aytganda, shuni ta'kidlash kerakki, Standart XML parser yordamida msxml.dll.bu faqat tahlil qilish va XML hujjatlarini yaratish vositasi emas. Masalan, komponentlardan samarali foydalanish uchun XML hujjatlarini yaratish uchun TPagepRoderer.va TTablProderer.. Ammo bu maqolada faqat dom modelini amalda qo'llashning kengligi va imkoniyatlarini ta'kidlaydi.

Muallif mavzuni muhim ahamiyatga ega bo'lgan fikrlar, umumiy tarkib, taqdimot uslubi, shuningdek, qamrab oluvchi kitoblarning chiqarilishi sifatini yanada oshirishga yordam beradigan boshqa barcha sharhlar uchun juda minnatdor bo'ladi XML hujjatlaridan foydalanishning amaliy tomoni elektron tijoratda. Elektron hujjatlarni qo'llashning amaliy tomoni haqida ko'proq ma'lumot olish uchun siz muallifning veb-saytida www.ecs.al.rudan o'rganishingiz mumkin, shuningdek manba matnlari va misollarni joylashtirish rejalashtirilgan.

XML Til tobora ko'proq ma'lumot saqlash, dasturlar va veb-kam tugunlar o'rtasida almashish uchun ishlatiladi. Ko'pgina dasturlarda bu til boshqalarga ma'lumotlarning asosiy saqlashi sifatida ishlatiladi - XML \u200b\u200bma'lumotlarni eksport qilish va import qilish. Bundan kelib chiqadiki, ishlab chiquvchilar uchun XML ma'lumotlarni qanday ishlatish haqida o'ylash vaqti keldi.

Ushbu maqolada biz XML hujjat ob'ekti modelini (Dom) va uni Microsoft XML Dom tomonidan amalga oshiramiz.

XML Dom - bu XML fayllarni yuklab olish va qayta ishlash va qayta ishlash uchun ob'ektlarni taqdim etadigan ob'ekt modelidir. Ob'ekt modeli quyidagi asosiy ob'ektlardan iborat: XMLLDOMDOD, XMLLDOMNODELIST, XMLLDOMNODED, XMLLDOMMOMAMEDNOLAP va XMLDOMOOMPAREEDERROR. Ushbu ob'ektlarning har biri (XMLDOMPARSErrordan tashqari) ob'ektning qadriyatlari va tuzilmasini boshqarish, shuningdek, XML hujjat tuzilishi bo'ylab harakatlanish uchun xususiyatlar va usullar mavjud.

XML Domning asosiy ob'ektlarini ko'rib chiqing va Borland Delphi-da foydalanishning bir nechta misollarini keltiring.

Borland Delphi-da XML Delfi-dan foydalanish

Microsoft XML Dom-dan Delphi dasturlarida foydalanish uchun siz tegishli turdagi kutubxonani loyihaga ulashingiz kerak. Buning uchun biz loyihani amalga oshiramiz | Import turlari va Import turidagi kutubxona dialoida, Microsoft XML versiyasi 2.0 versiyasi (2.0 versiyasi) ni tanlang.

YANGILIShDAN BIRINCHI tugmasini bosgandan so'ng, MSXML_TLB interfeysi moduli yaratiladi, bu XML DOM ob'ektlaridan foydalanishimizga imkon beradi: dona, xmdocument, XMLxtprusti va MSXML.dll kutubxonasida amalga oshiriladi. Msxml_tlb modulidagi havola Foydalanishlar ro'yxatida keltirilishi kerak.

XML DOM qurilmasi

Hujjat ob'ekti modeli filiallardan tashkil topgan daraxtning tuzilishi shaklida XML hujjatni anglatadi. XML DOM dasturiy interfeyslari dasturlarni hujjat daraxtini boshqarishga va uning filiallarini boshqarishga imkon beradi. Har bir filialning o'ziga xos turiga ega bo'lishi mumkin (domnodetippe), shuningdek, ota-onasi va filiallari aniqlanadi. Ko'pgina XML hujjatlarida, siz elementning filiallarini, atribut va matn filiallarini topishingiz mumkin. Atributlar (atribut) bu filialning maxsus turi va yordamchi tarmoqlar emas. Atribut boshqaruvi uchun XML DOM ob'ektlari tomonidan taqdim etilgan maxsus usullar qo'llaniladi.

Microsoft XML D-ni tavsiya etilgan World Conscessiumi (W3C) Interfeysiumini amalga oshirishga qo'shimcha ravishda XSL, XSL naqshlari va ma'lumotlar turlarini qo'llab-quvvatlaydigan usullar mavjud. Masalan, tanlangan tanlangan shablonlar sintaksisini (XSL naqsh sintaksisidan foydalanishga imkon beradi va transformator usulida o'zgarishlarni amalga oshirish uchun XSLdan foydalanishni qo'llab-quvvatlaydi.

XML hujjatini sinab ko'ring

XML hujjatining namunasi sifatida quyidagi tuzilishga ega bo'lgan musiqa CD-ROM katalogini oling:

EmPire Burlesque Bob Dylan. AQSH. Kolumbiya. 10.90 1985 Yuragingizni yashir. Bonni tyla. Buyuk Britaniya. CBS yozuvlari. 9.90 1988 ... Yuragimni o'zgartiring. Jo xocher. AQSH. Emi 8.20 1987

Endi biz XML Dom modelini, tanishish ob'ekti bilan tanishishini ko'rib chiqishga tayyormiz.

XML Hujjat - XMLDOMDOCKANING AQUSI

XML hujjati bilan ishlash uni yuklab olish bilan boshlanadi. Buning uchun biz yuklab olingan hujjat URL manzilini ko'rsatuvchi faqat bitta parametr mavjud bo'lgan yuk usulidan foydalanamiz. Fayllarni mahalliy diskdan yuklab olishda faqat to'liq fayl nomi ko'rsatilgan (fayl: ////// protokoli ushbu holatda qoldirilishi mumkin). Agar XML hujjati satr sifatida saqlansa, bunday hujjatni yuklab olish uchun Loadxll usulidan foydalanish kerak.

Hujjatni yuklab olish usulini boshqarish (sinxron yoki asenkron), ASYNC mulki ishlatiladi. Odatiy bo'lib, bu mulk tegishli ekanligini ko'rsatadigan, hujjat asinxron va nazorati hujjatga to'liq yuklanmaguncha, dasturga qaytariladi. Aks holda, hujjatni sinxronlashtiradi, so'ngra siz to'ldirish uchun, uni aniqlash yoki yo'qligini aniqlash uchun tayyor mahsulotning qiymatini tekshirishingiz kerak. Shuningdek, siz profeatate xususiyati qiymatini o'zgartirishda nazoratni oladigan noaddiy statechange tadbirini olib borishingiz mumkin.

Yuk usulidan foydalangan holda XML hujjatni qanday yuklab olish mumkinligi ko'rsatilgan:

Foydalanuvchilar ... Msxml_tlb ... protsedura TFF1.Button1click (jo'natuvchi: tog '; Var Xmldoc: IXMLDOMDOD; XMLDOCni boshlang: \u003d CodomDocument.Creatum; XMLDOC.ASYC: \u003d FALSE; XMLDOC.OG ('c: \\ ma'lumot \\ ma'lumot.xml'); // // bu erda // xml hujjat va uning filiallari // xmldoc: \u003d nIL; oxiri;

Hujjat yuklangandan so'ng, biz uning xususiyatlariga murojaat qilishimiz mumkin. Shunday qilib, tugunning mol-mulkini #dokening qiymati o'z ichiga oladi, natriy qiymatida natriy qiymatida natriy qiymat - bu hujjatning xususiyatidir, URL-mulki - bu fayl: /// C: /Data/data.XML qiymati.

Qayta ishlash xato

Hujjatni qayta ishlash bilan bog'liq xususiyatlar katta qiziqish uyg'otadi. Shunday qilib, parda mulkni qayta ishlash jarayonida yuzaga kelgan xato ma'lumotlarini o'z ichiga olgan xmldomparseerrseerrseerrroror ob'ektini qayta boshlaydi.

Xato ishlov beruvchini yozish uchun siz quyidagi kodni qo'shishingiz mumkin:

Var Xmmlerror: IXMDDOMEARSEVROR; ... xmldokc. yuk ('c: \\ ma'lumotlar \\ ma'lumot.xml'); Xmlerror: \u003d XMLDOC.PRORESEROR; Agar XMMLERROR.ERORDODODAN bo'lsa.<> 0 Keyin // // Bu erda biz xatoni qayta ishlaymiz // eslatish // boshqa xotira.Add (XMLDOC.XML); ... Xmldoc: \u003d nil;

Xato bo'lsa, qaysi ma'lumotlarni qaytarilishini bilish uchun quyidagi katalog elementini o'zgartiring:

EmPire Burlesque Bob Dylan. AQSH. Kolumbiya. 10.90 1985

yopilish elementini olib tashlash Ikkinchi qatorda:</p><p> <CD> <TITLE>EmPire Burlesque <ARTIST>Bob Dylan.</ARTIST> <COUNTRY>AQSH.</COUNTRY> <COMPANY>Kolumbiya.</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> </p><p>Endi XMVMomparseerrroror xususiyatlarining xususiyatlarini qaytaradigan kodni yozing:</p><p>Xmlerror: \u003d XMLDOC.PRORESEROR; Agar XMMLERROR.ERORDODODAN bo'lsa.<> 0 Keyin XMMLEROR, MEMO1.LINChILAR QO'ShIMChA ('' fayl: '+ URL); Qo'shing ('kodi:' + stsenortr (xatolar kiritish)); Qo'shish ('Xato:' + Sabab); Qo'shish ('matn:' + srctext); Qo'shish ('satr:' + stsenortr (liniya)); Qo'shish ('pozitsiyasi:' + stsenortr (linepos)); Boshqa yozuvlar eslatma eslatma (XMLDOC.XML); Oxiri;</p><p>va bizning arizamizni bajaring. Natijada biz quyidagi xato ma'lumotlarini olamiz.</p> <p>Yuqoridagi misoldan ko'rinib turibdiki, XMDDOMPARSERORRONRON ob'ekti tomonidan qaytarilgan ma'lumotlar xatoni mahalliylashtirish va uning paydo bo'lishining sababini tushunish uchun etarli.</p> <p>Endi yopilish elementini tiklang <TITLE> Bizning hujjatimizda XML Domni muhokama qilishni davom ettiring.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Hujjat daraxtiga kirish</h2> <p>Hujjat daraxtiga kirish uchun siz ildiz elementini olishingiz mumkin, keyin uning filialidan o'ting yoki ma'lum bir filialni topishingiz mumkin. Birinchi holda, biz xlimdomnod turini qaytaradigan hujjatlar mulki orqali ildiz elementini olamiz. Quyida har bir bola elementining tarkibini olish uchun hujjatlar mulkidan qanday foydalanish kerakligi ko'rsatilgan:</p><p>Var tugun: IXMLDOMNOD; Ildiz: IXMLDOMILE; I: butun son; ... ildiz: \u003d XMLDOC.DOCKOMUM; I: \u003d 0 uchun 0 gacha .Langhnodes.Langh-1 ni boshlang: \u003d ildiz.childnodes.item [i]; Memo1.Lines.Add (nododext); Oxiri;</p><p>Bizning XML hujjatimiz uchun biz quyidagi matnni olamiz.</p> <p>Agar biz birinchi sho''ba korpusidan past bo'lgan biron bir o'ziga xos filial yoki filial darajasiga qiziqsak, biz na Nadefroid usuli yoki XMLDOMDOCTHING ob'ektining Getelement-ning usulidan foydalanishimiz mumkin.</p> <p>Nadefroid usuli XML sxemada aniqlangan noyob identifikatorni yoki hujjat turini aniqlash (DTD) ni aniqlash va ushbu identifikator bilan filialni qaytarishni talab qiladi.</p> <p>Getelementbytagname usuli ma'lum bir element (yorliq) bilan satrni ko'rsatadi va ushbu mahsulot bilan barcha filiallarni qaytarishni talab qiladi. Quyida CD-ROM katalogida barcha ijrochilarni topish uchun ushbu usuldan qanday foydalanish kerakligi ko'rsatilgan:</p><p>Tugunlar: IXMLDOMNODEST; Tugun: ixmldomnode; ... tugunlari: \u003d XMLDOC.JEGREYTREYTYTRYAMETYALASH ('Rassom'); Men: \u003d 0 tugun-1 ni boshlang. \u003d Kodes.item [i]; Memo1.Lines.Add (nododext); Oxiri;</p><p>XML hujjatimiz uchun biz quyidagi matnni olamiz.</p> <p>E'tibor bering, XMLLDOMNODE TANLANGAN TANLANGAN TANLANGAN TANLANGAN TANLANGAN TANLANGAN TANLANGI Hujjatlar tarmoqlariga kirishning yanada moslashuvchan usulini taqdim etadi. Ammo bu biroz pastroq.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Hujjat filiali - XMLLDOMNOD ORUS</h2> <p>XMLLDOMNOD OBUVIY OBUVA FAQATI. Biz ushbu ob'ektni hujjatning ildiz eleli olinganda, biz allaqachon duch kelganmiz:</p><p>Ildiz: \u003d XMLDOC.DOCKOMUM;</p><p>XML hujjatining filialida ma'lumot olish uchun siz XMLLDOMNOD ob'ektining xususiyatlaridan foydalanishingiz mumkin (1-jadval).</p> <p>Filialda saqlanadigan ma'lumotlarga kirish uchun odatda nodevalue mulkidan foydalanadi (ishlov berish va CDATA bo'limlari uchun ko'rsatmalar, sharhlar va CDATA bo'limlari uchun mavjud) yoki nodetampedvalue mulkini qaytaradigan matn mulki. Ikkinchisi, faqat kiritilgan elementlar bilan filiallar uchun ishlatilishi mumkin.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h3> Hujjat daraxtida harakatlanish</h3> <p>XMLLDOMNOD OBUS Hujjat daraxti orqali harakatlanishning turli usullarini ta'minlaydi. Masalan, ota-onalar filialiga kirish uchun, ota-onalar mulki qo'llanilishi, bolalarning filiallariga kirish (Xmldchild turi), Bolalik xususiyatlari (XMLDMOMNODE turi), birinchi bo'lib, oxirgi va xlldomnode turlari) orqali amalga oshiriladi. Uskuna mulki XML hujjatli xususiyatini aniqlaydigan XMLDOCKUS ob'ektini qaytaradi. Yuqoridagi xususiyatlar hujjat daraxtidan o'tishni osonlashtiradi.</p> <p>Endi men XML hujjatining barcha filiallarini engaman:</p><p>Ildiz: \u003d XMLDOC.DOCKOMUM; I: \u003d 0 uchun 0 gacha .Langhnodes.Langh-1 ni boshlang: \u003d ildiz.childnodes.item [i]; Agar node.hassdondnods keyin getchilds (tugun, 0); Oxiri;</p><p>Yuqorida aytib o'tilganidek, XMLDOMNODE Ob'yektori XMLDOMNODE Ob'yektori hujjatning tarmoqlariga kirishning yanada moslashuvchan usulini taqdim etadi. Bundan tashqari, hujjatning birinchi filialini qaytaradigan tanlash usuli mavjud. Ushbu ikkala usul ham filiallarni qidirish uchun XSL shablonlarini belgilashga imkon beradi.</p> <p>CD filiali va inflyatsiyasiga ega bo'lgan barcha filiallarni olish uchun tanlangan tanlanganlar usulidan foydalanish jarayonini ko'rib chiqing.</p><p>Ildiz: \u003d XMLDOC.DOCKOMUM; Tugunlar: \u003d ildiz.Selectnodes ('CD / narx');</p><p>Modes kolleksiyasini barcha CD filiallari joylashtiriladi. XSL shablonlarini muhokama qilish biroz keyinroq qaytib keladi.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h3> Qizlar filiallari tomonidan boshqariladigan manipulyatsiya</h3> <p>Sho'balarni manipulyatsiya qilish uchun biz XMLLDOMNOD Ob'ektining usullaridan foydalanishimiz mumkin (2-jadval).</p> <p>Birinchi disk yozuvini to'liq o'chirish uchun quyidagi kodni bajarishingiz kerak:</p><p>Var Xmldoc: IXMLDOMDOD; Ildiz: IXMLDOMNOD; Tugun: ixmldomnode; XMLDOC: \u003d CodomDocument.Creatum; XMLDOC.ASYC: \u003d FALSE; XMLDOC.OG ('c: \\ ma'lumot \\ ma'lumot.xml'); // ildiz elementi ildizini oling: \u003d XMLDOC.DOCKOMUM; Tugun: \u003d ildiz; // Birinchi sho''ba korxonasini olib tashlang (Nodod.Firstgild);</p><p>Shuni esda tutingki, biz birinchi filialni olib tashlaymiz. Birinchi sho''ba korxonasining birinchi elementini qanday o'chirish kerak, quyida keltirilgan:</p><p>Var Xmldoc: IXMLDOMDOD; Ildiz: IXMLDOMNOD; Tugun: ixmldomnode; XMLDOC: \u003d CodomDocument.Creatum; XMLDOC.ASYC: \u003d FALSE; XMLDOC.OG ('c: \\ ma'lumot \\ ma'lumot.xml'); // ildiz elementi ildizini oling: \u003d XMLDOC.DOCKOMUM; // va birinchi yordamchi tugun: \u003d Root.Firstchild; // Birinchi sho''ba korxonasini olib tashlang (Nodod.Firstgild);</p><p>Yuqoridagi misolda biz birinchi filialni olib tashlamadik. <CD>…</CD>va filialning birinchi elementi - <TITLE>….

Endi yangi filial qo'shing. Quyida CD-ROM musiqiy musiqiy yozuvini qanday qo'shish kerakligini ko'rsatadigan kod:

Var NewNode: IXMLDOMNOD; Bola: IXMLLDOMNOD; ... // yangi filial yarating - NewNode: \u003d XMLDOC.Createnode (1, 'CD' ''); // element qo'shish Bola: \u003d XMLDOC.Createnode (1, 'Sarlavha' '' '); // NewNode.Appendchildchildchild (bola) elementini qo'shing; // va bola.text qiymatini belgilang.text: \u003d 'pushti floyd'; // element qo'shish <ARTIST> Bola: \u003d XMLDOC.Createnode (1, "Rassom", '); // NewNode.Appendchildchildchild (bola) elementini qo'shing; // va bola.text ning qiymatini belgilang.Text: \u003d 'Bell Bell' '; // element qo'shish <COUNTRY> Bola: \u003d XMLDOC.Createnode (1, 'mamlakat', '); // NewNode.Appendchildchildchild (bola) elementini qo'shing; // va bola.text qiymatini belgilang.Text: \u003d 'Buyuk Britaniya'; // element qo'shish <COMPANY> Bola: \u003d XMLDOC.Createnode (1, 'Kompaniya', '); // NewNode.Appendchildchildchild (bola) elementini qo'shing; // va uning qiymatini bolani belgilang.Text: \u003d 'EMI yozuvlari Ltd.'; // element qo'shish <PRICE>Bola: \u003d XMLDOC.Createnode (1, 'narx', ''); // NewNode.Appendchildchildchild (bola) elementini qo'shing; // va bola.tect.tect qiymatini belgilang: \u003d '11 .99 "; // element qo'shing <YEAR> Bola: \u003d XMLDOC.Createnode (1, 'yil', '); // NewNode.Appendchildchildchild (bola) elementini qo'shing; // va bola.text qiymatini belgilang.text: \u003d '1994'; // va ildiz.Appendchild filialini qo'shing (NewNode); ...</p><p>Yuqoridagi kod Yangi bo'lim qo'shish uchun quyidagi harakatlar ketma-ketligini ko'rsatadi:</p> <ul><li>Createnode yordamida yangi filial yaratish: <ul><li>createnode usuli yordamida element yaratish;</li> <li>append tugagan usuli bilan filialga elementni qo'shish;</li> <li>matnli mulk orqali elementning qiymatini belgilash;</li> <li>... barcha narsalar uchun takrorlang.</li> </ul></li> <li>Hujjatga yangi filialni ilova tomonidan qo'shing.</li> </ul><p>Eslatib o'tamiz, ilova qilish usuli daraxtning oxirida novda qo'shadi. Biror daraxtning o'ziga xos joyiga filial qo'shish uchun siz o'rnatilgan usuldan foydalanishingiz kerak.</p> <h2> Filiallar to'plami - XMLDOMNODELISTYISTYI</h2> <p>XMLNOLLIST Ob'ektida tanlangan fayllar yoki getelinsmapagname usullaridan foydalanish mumkin bo'lgan filiallar ro'yxati keltirilgan va shuningdek, bolalarga xos bo'lgan mulkka ega.</p> <p>Biz ushbu ob'ektdan "Hujjat daraxtida harakatlanayotgan" bo'limida ko'rsatilgan misolda biz allaqachon ko'rib chiqdik. Bu erda biz ba'zi nazariy sharhlar beramiz.</p> <p>Ro'yxatdagi filiallar soni uzunlikdagi mulkning qiymati sifatida olinishi mumkin. Filiallar 0 dan uzunligi 0 gacha indekslarga ega va har bir alohida filial tegishli indeks bilan buyumlar qatoridagi massiv elementi orqali mavjud.</p> <p>Filiallar ro'yxatiga o'tish, shuningdek, joriy filialning ikkinchisi bo'lsa, ro'yxatdagi yoki nilni qaytaradigan keyingi filialni ishlatishingiz mumkin. Ro'yxatning yuqori qismiga qaytish uchun siz tiklash usulini chaqirishingiz kerak.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Hujjatlarni yaratish va tejash</h2> <p>Shunday qilib, biz Mavjud XML hujjatlariga tarmoqlar va elementlarni qanday qo'shishingiz mumkinligini ko'rib chiqdik. Endi XML hujjatini "Chivinda" yarating. Avvalo, hujjat nafaqat URL-ga, balki odatiy simli yukni ham yuklashini eslatamiz. Quyida qolgan elektr elementini qanday yaratish mumkinligi ko'rsatilgan, qolgan elementlarni dinamik ravishda qurish uchun sarflash (biz allaqachon "Shaxsiy filiallarni manipulyatsiya bo'limida ko'rib chiqdik"):</p><p>Var Xmldoc: IXMLDOMDOD; Ildiz: IXMLDOMNOD; Tugun: ixmldomnode; S: keng o'rinni keng ... S: \u003d ' <CATALOG></CATALOG>'; XMLDOC: \u003d CodomDocument.Creatum; XMLDOC.ASYC: \u003d FALSE; XMLDOC.OGHXML (lar); Ildiz: \u003d XMLDOC.DOCKOMUM; Tugun: \u003d XMLDOC.Createnode (1, 'CD' ''); Ildiz.Appendchildchild (tugun); Memo1.Lines.Add (XMLDOC.XML); ... Xmldoc: \u003d nil;</p><p>XML hujjatini qurgandan so'ng, uni Saqlash usuli yordamida faylda saqlang. Masalan:</p> <p>XMLDOC.Savsi ('c: \\ negrd.xml');</p> <p>Faylni saqlashdan tashqari, Saqlash usuli XML hujjatni yangi XMLDOOMDOCK ob'ektida saqlash imkonini beradi. Bunday holda hujjat to'liq ishlov berish va natijada uning tuzilishi va sintaksisini tekshirish. Quyida hujjatni boshqa ob'ektda qanday saqlash kerakligi ko'rsatilgan:</p><p>TFFR1.Button2click (jo'natuvchi: tog '); Var Xmldoc2: IXMLDOMDOD; XMLDOC2: \u003d CodomDocumentencume-ni boshlang; XMLDOC.Savsi (XMLDOC2); Memo2.Lins.Add (XMLDOC2.XML); ... Xmldoc2: \u003d nil; oxiri;</p><p>Xulosa qilib aytamiz, tejash usuli, shuningdek, XML hujjatni ISTREAM, ISESSREAM yoki IPESCistreaminit interfeyslarini qo'llab-quvvatlaydigan boshqa com ob'ektlarga saqlash imkonini beradi.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> XSL shablonlaridan foydalanish</h2> <p>XMLLDOMNOD Ob'ektni tanlash usulini muhokama qilish, biz hujjatning shoxlariga kirishning yanada moslashuvchan usulini taqdim etishini eslatdik. Moslashuvchanlik, filiallarni tanlash mezoni sifatida siz XSL shablonini belgilashingiz mumkin. Bunday shablonlar XML hujjatlarida ma'lumotlarni qidirish uchun kuchli mexanizmni ta'minlaydi. Masalan, bizning katalogidagi CD-ROM musiqiy CD-ROM musiqiy CD-ROM nomlarini olish uchun siz quyidagi so'rovga amal qilishingiz mumkin:</p><p>Amerika Qo'shma Shtatlarida ijrochilarning disklari chiqarilishini bilish uchun, so'rov quyidagicha shakllanadi:</p><p>Tugunlar: \u003d ildiz.Selectnodes ('CD / rassom');</p><p>Quyida katalogdagi birinchi diskni qanday topish mumkinligi ko'rsatilgan:</p><p>Tugunlar: \u003d ildiz.Selectnodes ('CD / sarlavhasi');</p><p>va oxirgi:</p><p>Tugunlar: \u003d ildiz.Selectnodes ('CD / sarlavhasi');</p><p>Bob dilanning disklarini topish uchun siz quyidagi so'rovni bajarishingiz mumkin:</p><p>Tugunlar: \u003d ildiz.SelectNodes ('cd [$ CD $ CD \u003d "Bob Dylan"] / Sarlavha');</p><p>1985 yildan keyin chiqarilgan disklar ro'yxatini olish uchun biz quyidagi so'rovni amalga oshiramiz:</p><p>Tugunlar: \u003d ildiz.Selectnodes ('CD / sarlavhasi');</p><p>XSL sintaksisining batafsilroq muhokama qilinishi alohida nashrni talab qiladi. O'quvchilarni qiziqtiruvchi va qo'shimcha tadqiq o'tkazish uchun men XSLdan foydalanishning faqat bitta kichik misolini beraman. Aytaylik, biz sizning katalogimizni odatiy HTML jadvalga o'zgartirishimiz kerak. An'anaviy usullardan foydalanish, biz barcha daraxt shoxlarini va tegishli teglarni shakllantirish uchun olingan har bir narsa uchun saralashimiz kerak <TD>…</TD>.</p> <p>XSL-dan foydalanish biz shunchaki shablon (yoki uslub jadvalini) yaratamiz, unda biz nima va qanday aylantirishni ko'rsatamiz. Keyin biz ushbu shablonni bizning katalogimizga joriy qilamiz - va katalogni stolga o'zgartiradigan XSL shablonining matni (listing 2).</p> <p>XSL shablonini bizning katalogimizga katalogimizga o'xsha:</p><p>TFFR1.Button2click (jo'natuvchi: tog '); Var Xsldoc: IXMLDOMDOCKANING; XSLDOCni boshlang: \u003d CodomDocument. Xsldvolc. yuk ('c: \\ ma'lumot \\ ma'lumot.xsl'); Memo2.Text: \u003d Xmldoc.TransforodNode (XSDDOC); XSLDOC: \u003d nil; oxiri;</p><p>XSL muhokamasini yakunlab, hozirgi paytda ushbu XML hujjatlari, shuningdek formatlashni formatlash uchun faol foydalaniladi.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> Xulosa</h2> <p>Bu aniq sabablarga ko'ra, bitta maqolada barcha Microsoft XML DOM Ob'ektlarini hisobga olish mumkin emas va ulardan foydalanishning misollarini keltirib chiqaradi. Bu erda biz faqat XML DOM dan foydalanishning asosiy masalalariga arizalarda foydalanishimiz kerak. Yorliqda. 3 Microsoft XML Dom-da amalga oshirilgan barcha ob'ektlarni ko'rsatadi.</p> <p>12 "2000"</p> <p>Delphi-dagi vazifalarni hal qilish <br> Delphi - bu o'quv jarayonida talabalar ko'pincha tanish bo'lgan ikkinchi dasturlash tili. Bu ob'ektga yo'naltirilgan dasturlashning boshlanishi. Men, talaba sifatida o'zim uchun kalkulyator yozishdan ko'ra, tilni o'zlashtirish uchun oson usul yo'qligini xulosa qilaman. Agar siz ikkita raqam qo'shinining elementar funktsiyasini anglasangiz ham, bu allaqachon juda ko'p yorug'lik bilan.</p> <p>CodeGreear, Delphiear 7, Lazar har xil kompilyator, siz uni zoligi va bittasiga aylantiruvchi mashina kodiga o'tkaziladigan dasturlar. Bularning barchasi dasturlarni yaratish bo'yicha dasturlar va dasturlash tillarini alohida emas. Ushbu kompilyonlar delphi tiliga o'xshash delphi tilidagi delphi tilidan foydalanib, odatdagidek paskalga o'xshash sintakka o'xshash, ammo funktsional jihatdan boshqacha. <br></p> <h2>Dasturlash tili sintaksisi nima?</h2> <p>Bu turli operatorlarni yozish formati. Masalan, Paskalda "uchun" tsiklda quyidagi format mavjud: "n: \u003d 1 dan k ish" va boshqalarga.</p><p>C ++ dasturlash tilida bir xil tsikl biroz boshqacha yozilgan: uchun (n \u003d 1; n Biz kalkulyator yozamiz</p><p>Bu sizga dastur kodi bilan bog'liq ob'ektlar o'zaro ta'sirga ega, matematik funktsiyalar qanday ishlashini tushunishga yordam beradi. Har qanday holatda barcha dasturlash hisob-kitob bo'ladi. O'yin, shuningdek, biror narsani doimo deb hisoblaydigan, raqamlar va raqamli funktsiyalar bilan ishlaydi. Dasturlash matematikada ajralmasdir.</p> <p>Biz Lazarni rivojlantirish muhitini yozish uchun foydalanamiz. Uning funksionalligi, aytganidek boy emas, deydi kodegar, ammo u bepul kirishdir va o'qish uchun mo'ljallangan.</p><p>Rivojlanish muhitini ochish, biz elementlarning shakli va panelini ko'ramiz. Bu shakl.</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>Bu erda element paneli.</p><p>Birinchi narsa biz ikkita raqamning qo'shimcha funktsiyasini amalga oshirish uchun uchta narsani qo'shing. Bizga: "TEDIT" uchta bo'lak va "tlutton" sonida. Quyidagi rasmda ular o'q panellarida ko'rsatilgan. Ularni bir marta bosing, so'ngra bir marta shaklda va ularda paydo bo'ladi.</p><p>Bular kiritish uchun matn maydonlari va oddiy tugmalar. Siz deyarli har qanday Windows dasturi yordamida ushbu elementlarga duch kelasiz. Qarab qo'ymoq.</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>Endi ushbu yozuvlarni tozalang. Ko'rish oynasini bosing. Va "Ob'ektlar inspektori" ni bosing. Ushbu oynani paydo bo'ladi.</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>Formada "tugma" elementida bir marta bosing va "sarlavhani" qiymatini boshqalarga boshqa raqamga o'zgartirish. Masalan, "OK" so'zida. Enter ni bosing. Biz shaklni ko'ramiz, chunki element nomni o'zgartirdi.</p><p>Faqat o'zgartirilmay, uni tahrir qilmang, lekin biz ularni hech qanday tarkibsiz qilamiz. Biz ularni o'z navbatida ta'kidlaymiz va inspektorda matn qiymatini tozalaymiz. Enter ni bosishni unutmang.</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>Natijaga ko'ra, bizning formamiz shunday ko'rinadi.</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>Endi bizning kalkulyatori topilgunga qadar, siz bizning tugmachasini biz uchun zarur dasturiy kodni ro'yxatdan o'tkazishingiz kerak. Tugmani ikki marta bosing va manba muharririni oching.</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>Qarangmi? Tugmachasini bosing. Bu tugmachani bir marta bosganimizda nima sodir bo'lishi uchun javobgardir. Va quyidagilar yuzaga kelishi kerak: Dastur uchinchi tahrirda, dastlabki ikki sohaga kiritilgan raqamlarning yig'indisini olib kelish uchun kerak. Biz kodni yozamiz.</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>Biz yozishimiz kerak bo'lgan bunday oddiy 5 satr. Yuqoridagi rasmda sharhlar va tushuntirishlar ko'rinadi. Shundan so'ng ushbu tugmani bosing.</p> <p>Bizning loyihamizni tuzish tuziladi. U dasturda yig'iladi. Biz birinchi ikki sohada raqamlarni kiritamiz, tugmani bosing va miqdorning qiymatini oling.</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>Xulosa</h2> <p>Siz "Fayl" tugmachasini bosishingiz mumkin, shunda "Hamma narsani saqlab qo'ying", saqlash uchun papkani tanlang va siz ish stolidan amalga oshirilishi mumkin. Endi dastur ikki raqamga bo'linishi uchun ushbu kodni qayta yozish kerakligini o'zingiz aniqlashga harakat qiling, va katlanmaydi. Maslahat: Ma'lumotlar turini o'zgartirishingiz kerak. Quyidagi video shunga o'xshash misolni ko'rsatadi, ammo Lazar emas, delfi 7-da.</p><p><span class="6qR5tjJKK3g"></span></p> <p>Ko'plab delphi dasturchilari, saqlash sozlamalarini tejash bilan bog'liq <i>II.</i> Dasturlaridagi fayllar. Ushbu usuldan kam jiddiy loyihalarda foydalanish, bunda moslashuvchanlik cheklanganligi sababli, moslashuvchanlikni cheklashning oldini olish kerak, bu esa dasturni yanada kengaytirishiga to'sqinlik qiladi. Bunday yondashuvni rivojlantirish qulayligi va rivojlanish muhitida o'rnatilgan mablag'larning mavjudligi tufayli bunday yondashuv juda mashhur deb ta'kidlashadi. <br><br> Biroq, dastur sozlamalarini saqlash uchun ideal variant tuzilgan <i>Xml</i> Fayllar. Ularning afzalligi shundaki, parametrlar soni deyarli o'rnatilishi mumkin emas. Buni yaxshiroq tushunish uchun aniq misolni ko'rib chiqing.</p><p>Urug'lantiruvchi dasturda, yozishni bosganingizda kontekst menyusi ko'rinadi, bu ballar ro'yxatini ko'rsatadi. Ushbu elementlar o'z navbatida Sozlamalar faylidan yuklab olinadi. Agar sozlamalar saqlangan bo'lsa <i>II.</i> Fayl, dastur ma'lum miqdordagi buyruqlarni tejash va yuklashi mumkin. Masalan 10 yoki 50. Sizga muhim bo'lsa, siz kodni qayta yozishingiz va shunga mos ravishda qayta tuzishingiz kerak.</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> Yordamida yondashuvni qo'llash <i>Xml</i> Fayllar, biz bo'limning barcha parametrlarini jadal holda yuklab olish imkoniyatiga ega bo'lamiz. Buning uchun konfiguratsiya fayli yanada oqilona bo'lib qoladi, parametrlarni ortiqcha raqamlashsiz. Biroq, bilan ishlash uchun standart vositalar <i>Xml</i> Delphi ko'p kamchiliklarga ega, shuning uchun Standart kutubxonadan foydalanishni maslahat beraman <b>Msxml</b>. Odatda bu Windows oilasi tizimlarining asl qismi.</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> Ulanish uchun <b>Msxml</b>Biz barcha funktsiyalar ro'yxatini barcha funktsiyalar ro'yxatiga kiritishimiz kerak. Interfeysni qanday qilib import qilish kerak batafsil maqolalar yozilmagan, men faylni yuklab olishni taklif qilaman <b>Msxml2_tlb.pas.</b> Allaqachon foydalanishga tayyor. Fayl yuklab olingandan so'ng, uni o'zingizning loyihangizning yonida joylashtiring yoki Delphi Lib papkasiga tashlang. Shunday qilib, yaratilgan barcha dasturlar moduldan foydalanish imkoniyatiga ega bo'ladi. <b>Msxml</b>, MSXML2_TLB-ni foydalangan holda qo'shish kifoya.</p><p>Aniqlik uchun ushbu kutubxonaning quyidagi misolini ko'rib chiqing:</p><p>Jaroratni boshqarish; Var Xmldoc: domdomen; Ildiz: IXMLDOMILE; XMLDOCni boshlang: \u003d CodomDocument.Creatum; XMLDOC.OL ("YOSHINS.XML"); Ildiz: \u003d XMLDOC.DOCKOMUM; Showmessage ("o'lcham / kengligi"). Matnli; Ildiz: \u003d nil; XMLDOC: \u003d nil; oxiri;</p><p>Birinchidan, dona domdom klassining misoli yaratildi, shundan so'ng sozlamalar.xml fayl xotiraga yuklanadi. Har qanday standartga ko'ra <i>Xml</i> Faylda ildiz tegini o'z ichiga olishi kerak (bu holatda <i>konfigural</i>), keyin biz uni funktsiyadan foydalanishimiz kerak <i>Hujjatlar</i>. Keyin teglar orasidagi tarkibning mazmuni <width></width> qaysi burilishlar yorliqlar orasida <size></size> . Shunday qilib, sozlamalar.xml faylidan bizning uslubingiz Mermbox-da matnni joylashtiradi <i>"100px"</i>.</p><p> <?xml version="1.0" encoding="utf-8"?> <config> <size> <height>500px</height> <width>100px</width> </size> </config> </p><p>Bu erda saralash usuli qo'llaniladi, bu satrni parametr sifatida oladi.</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">Savolingizga javob topmadingizmi? Bu erga qarang</div> <div class="items"> <div class="related-item"> <a class="related-item__title" href="https://totrdlo.ru/uz/registraciya-lichnoi-stranicy-v-socialnoi-seti-facebook-kak-obedinit-dve-uchetnye.html"><img src="/uploads/3283d29449f6fcf31e7b8c7f3a8f6779.jpg" width="120" height="120" alt="Ikkita hisobni Facebookda qanday qilib birlashtirish mumkin?" class="related-item__image" / loading=lazy loading=lazy>Ikkita hisobni Facebookda qanday qilib birlashtirish mumkin?</a> <div class="related-item__comments"><span></span></div> </div> <div class="related-item"> <a class="related-item__title" href="https://totrdlo.ru/uz/kak-v-vorde-delat-ramki-krasivye-skachivaem-i-vstavlyaem-krasivye-ramki-v.html"><img src="/uploads/fd38b064f444ed23c0ccb9be68fc25ad.jpg" width="120" height="120" alt="Word hujjatiga chiroyli doirani yuklab oling va joylashtiring" class="related-item__image" / loading=lazy loading=lazy>Word hujjatiga chiroyli doirani yuklab oling va joylashtiring</a> <div class="related-item__comments"><span></span></div> </div> <div class="related-item"> <a class="related-item__title" href="https://totrdlo.ru/uz/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="Clock_watchDog_TimeAut turini qanday tuzatish"синий экран" (0x00000101)" class="related-item__image" / loading=lazy loading=lazy>Clock_watchDog_Timeout tipini qanday "ko'k ekran" turini bosing (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="Intel Core I5 \u200b\u200b4590 protsessor sharhlari" class="advices__image" / loading=lazy loading=lazy> <div class="advices__title" data-id="3334"><a href="https://totrdlo.ru/uz/processor-intel-core-i5-4590-otzyvy-obem-kesh-pamyati-l3-mb.html">Intel Core I5 \u200b\u200b4590 protsessor sharhlari</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">Yangi</div> <ul> <li><a href="https://totrdlo.ru/uz/chto-delat-esli-chernyi-ekran-chernyi-ekran-pri-vklyuchenii.html" >Kompyuterni yoqqaningizda qora ekran</a></li> <li><a href="https://totrdlo.ru/uz/kak-zablokirovat-programme-dostup-v-internet-kak-zablokirovat.html" >Internetda qanday qilib Internetda kirish dasturlarini blokirovka qilish kerak?</a></li> <li><a href="https://totrdlo.ru/uz/cherneet-ekran-chernyi-ekran-pri-vklyuchenii-kompyutera-chto.html" >Kompyuterni yoqqaningizda qora ekran?</a></li> <li><a href="https://totrdlo.ru/uz/nastroika-mach3-pod-vash-stanok-bazovaya-nastroika-mach3-pereklyuchit-yazyk-na-match.html" >Asosiy sozlash Mach3 tugmachasini bosing</a></li> <li><a href="https://totrdlo.ru/uz/pochemu-net-zvuka-v-dinamikah-kompyutera-pochemu-ne-rabotaet-zvuk-na.html" >Nima uchun tovush kompyuterda muammoni qanday hal qilish kerak?</a></li> <li><a href="https://totrdlo.ru/uz/kak-nachertit-diagrammu-v-vorde-stroim-grafiki-i-diagrammy-v-ms-word-diagramma.html" >Grafikalar va ms so'zida grafikalar quring</a></li> </ul> </div> <div class="section"> </div> <div class="section"> <div class="headline">Ommabop maqolalar</div> <ul class="sidebar-posts"> <li><a href="https://totrdlo.ru/uz/anime-fony-dlya-yandeks-brauzera-zhivye-upravlenie-temami-v-yandeks.html"><img src="/uploads/a7fbccd6efc443dd82be7ccfadade707.jpg" width="80" height="80" alt="Yandex-dagi mavzularni boshqarish" / loading=lazy loading=lazy>Yandex-dagi mavzularni boshqarish</a></li> <li><a href="https://totrdlo.ru/uz/post-i-get-zaprosy-prostymi-slovami-kak-otpravit-post-zapros-iz-brauzera-metod.html"><img src="/uploads/b37483beedf1144b2ca10b1603f4d78c.jpg" width="80" height="80" alt="Brauzerni qanday yuborish mumkin: PHP-da PHP-ning keyingi posti Misollar" / loading=lazy loading=lazy>Brauzerni qanday yuborish mumkin: PHP-da PHP-ning keyingi posti Misollar</a></li> <li><a href="https://totrdlo.ru/uz/kakie-sistemnye-trebovaniya-igry-cs-go-optimalnyi-komp-dlya.html"><img src="/uploads/ba7b6a9d8273cc696c1be7825f6e3e6c.jpg" width="80" height="80" alt="CS uchun qaysi kompyuter uchun optimal kompyuter" / loading=lazy loading=lazy>CS uchun qaysi kompyuter uchun optimal kompyuter</a></li> </ul> </div> <div class="section"> <div class="headline">Saytda yangi</div> <ul class="sidebar-posts sidebar-photo"> <li><a href="https://totrdlo.ru/uz/optimalnyi-komp-dlya-ks-go-kompyuter-dlya-cs-go-sistema-na-kotoroi-ks-go-ne.html">Politsiya uchun maqbul kompyuter</a></li> <li><a href="https://totrdlo.ru/uz/ispolzovanie-xml-v-srede-delphi-ispolzovanie-xml-document-object-model-sozdanie-xml-v.html">Delphi XE Flack-da XML-ni yaratadigan XML hujjat ob'ekti modelidan foydalanish</a></li> <li><a href="https://totrdlo.ru/uz/kak-ubrat-oshibku-scenariya-v-windows-kak-ispravlyat-svoi-oshibki.html">Qanday qilib xatolaringizni qanday tuzatish kerak, noutbuklarning barcha xatolarini tuzatishni</a></li> <li><a href="https://totrdlo.ru/uz/migaet-bukva-s-na-printere-ustranyaem-oshibki-esli-printer.html">Agar printer chop etishni xohlasa, xatolarni yo'q qiling</a></li> <li><a href="https://totrdlo.ru/uz/kak-ubrat-oshibku-scenariya-v-windows-ispravlyaem-oshibki-v-rabote-windows-kak.html">Windows-dagi to'g'ri derazalar kompyuterda xatolardan xalos bo'lish mumkin</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/uz/">Yangi</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/ustranenie-nepoladok-zablokirovannyh-ustanovok-i-udalenii-net.html">Qulflangan qurilmalarni va yo'q qilish muammolari</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/modul-chisla-v-eksele-summirovanie-po-modulyu-v-excel-alternativnye.html">Summus modul Excel-da</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/administrator-windows-zaproshennaya-operaciya-trebuet-povysheniya-administrator.html">Talab qilingan operatsiya o'sishni talab qiladi</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/zakrepit-stroku-v-word-zakreplyaem-zakreplenie-paneli-instrumentov-v-word-vklyuchenie.html">Asboblar panelini so'z bilan mahkamlash</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/uz/">Mashhur</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/zakrepit-tablicu-v-word-zakreplenie-paneli-instrumentov-v-word-vklyuchenie-otdelnyh.html">Asboblar panelini so'z bilan mahkamlash</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/ne-udalyaetsya-stranica-v-word-kak-v-programme-word-udalyat-stranicy.html">Sahifalarni o'chirish uchun so'z dasturida bo'lgani kabi</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/pochemu-poyavlyaetsya-sinii-ekran-na-windows-7-sinii-ekran-smerti-bsod-boremsya.html">Ko'k o'lim ekrani (BSOD) - Biz xatolar bilan kurashamiz</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/smenit-imya-vkontakte-bez-proverki-kak-pomenyat-imya-i-familiyu-v.html">Qanday qilib nomni va familiyani VK-ga o'zgartirish</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/vklyuchaetsya-noutbuk-acer-aspire-v3-571g-ne-vklyuchaetsya-noutbuk-acer-sbros.html">Makerga aylanmaydigan noutbuk</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/rabochaya-klaviatura-ne-rabotaet-ustanovka-draivera-s-diska-otkazyvaetsya.html">Diskdan drayverni o'rnatish</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/moshchnye-igrovye-pk-moshchnye-igrovye-pk-kak-sobrat-igrovoi-komp-za-100000.html">Golling o'yin kompyuterlari 100,000 uchun o'yin kompyuterini qanday yig'ish</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/devil-may-cry-vyletaet-ne-zapuskaetsya-dmc-tormozit-igra-vyletaet-glyuchit-reshenie-samyh-rasprostra.html">Iblis qulab tushishi mumkin. DMC boshlanmaydimi? O'yinni inhibe qiladimi? Qulab tushdimi? Buggy? Eng keng tarqalgan muammolarni hal qilish. DMKdagi har bir vazifadan so'ng: Iblis rahbarlar ro'yxatiga hisobni topshirish bilan bog'liq muammolarni yig'ishi mumkin</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/uz/">Tavsiya etilgan</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/dyablo-3-zavisaet-vo-vremya-igry-ne-zapuskaetsya-diablo-iii-tormozit-igra-vyletaet.html">Diablo III boshlanmaydimi?</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/kak-proverit-kompyuter-na-sledyashchie-programmy-kak-proverit-kompyuter-na.html">Spywareware-ga kompyuterni qanday tekshirish kerak</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/kak-naiti-programmu-slezheniya-na-kompyutere-shpionskie.html">Kompyuterda josuslik</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/chto-delat-esli-mass-effect-3-vyletaet-pri-zapuske-mass-effect-ne-zapuskaetsya.html">Ommaviy ta'sir boshlanmaydi: muammolarni hal qilish</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/reshenie-samyh-rasprostranennyh-problem-ne-zapuskaetsya-the-saboteur.html">Sabotur boshlanadimi?</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/pochemu-kompyuter-shch-lkaet-prichiny-po-kotorym-shchelkaet-zhestkii.html">Tizim blokida bosilganda qattiq diskni bosish va ularning echimi qilish sabablari</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/deadfall-adventures-kak-sdelat-polnoekrannyi-rezhim-kak-aktivirovat-polnoekrannyi-rezhim-v-brauzere.html">Brauzerda to'liq ekranli rejimni qanday faollashtirish mumkin?</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="https://totrdlo.ru/uz/mirror-s-edge-chernyi-ekran-zvuk-est-mirrors-edge-ne-zapuskaetsya-ne.html">Ko'zguliklar boshlanmaydi, ishlamaydi, o'rnatilmagan</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/uz/">Sayt haqida</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6900"><a href="">Sayt haqida</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6901"><a href="">Veb-saytda reklama</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6902"><a href="">Kontaktlar</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> Ru</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 Barcha huquqlar himoyalangan</p> <p>Sizning mobil yo'nalishingiz. Operatorlar. Foydali maslahatlar</p> <ul class="footer-bottom__nav"> <li><a href="" >Loyiha bo'yicha reklama</a></li> </ul> </div> <div class="footer-buttons"> </div> <ul class="footer__soc"> <li><a href="http://vk.com/" target="_blank" class="vk">Bilan aloqada</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>