با استفاده از XML مدل شیء سند. راهنمای اینترنت - همه جالب ترین آنلاین چگونه برای ایجاد یک فایل XML دلفی

زبان XML به طور فزاینده ای برای ذخیره اطلاعات استفاده می شود، آن را بین برنامه های کاربردی و گره های وب به اشتراک می گذارد. در بسیاری از برنامه های کاربردی، این زبان به عنوان ذخیره سازی اولیه داده ها در دیگران استفاده می شود - برای صادرات و وارد کردن داده های XML. از این به دنبال آن است که زمان آن است که توسعه دهندگان در مورد نحوه استفاده از داده های XML در برنامه های خود فکر کنند.

در این مقاله ما به آن نگاه خواهیم کرد سند XML مدل Object (DOM) و پیاده سازی آن توسط مایکروسافت - مایکروسافت XML DOM.

XML DOM یک مدل شی است که اشیاء توسعه دهنده را برای دانلود و پردازش فایل های XML فراهم می کند. مدل شیء شامل اشیاء اصلی زیر است: XMLDOMDocument، XMLDOMNODELIST، XMLDOMNODELIST، XMLDOMNAMEDNOMAP و XMLDomPARSEErrorError. هر یک از این اشیاء (به جز XMLDomParseError) شامل خواص و روش ها برای به دست آوردن اطلاعات در مورد شی، دستکاری مقادیر و ساختار جسم، و همچنین حرکت در امتداد ساختار سند XML است.

اشیاء اصلی XML DOM را در نظر بگیرید و چند نمونه از استفاده از آنها را در Borland Delphi ارائه دهید.

با استفاده از XML DOM در Borland Delphi

به منظور استفاده از مایکروسافت XML DOM در برنامه های دلفی، شما باید کتابخانه نوع مناسب را به پروژه وصل کنید. برای انجام این کار، ما پروژه را اجرا می کنیم کتابخانه نوع واردات و در پانل محاوره کتابخانه نوع واردات، کتابخانه مایکروسافت XML نسخه 2.0 (نسخه 2.0) را انتخاب کنید، که معمولا در فایل ویندوز \\ system \\ msxml.dll قرار دارد

پس از فشار دادن دکمه ایجاد واحد، ماژول رابط MSXML_TLB ایجاد می شود، که به ما اجازه می دهد از اشیاء XML DOM استفاده کنیم: DomDocument، XMLDocument، XMLHttPrequest و تعدادی از دیگران که در کتابخانه msxml.dll اجرا شده اند. لینک به ماژول MSXML_TLB باید در لیست استفاده شود.

XML دستگاه DOM

مدل شیء سند نشان دهنده یک سند XML به شکل یک ساختار درختی است که شامل شاخه ها می شود. رابط های نرم افزاری XML DOM اجازه می دهد تا برنامه های کاربردی را برای حرکت به درخت سند و دستکاری شاخه های خود را. هر شاخه می تواند نوع خاصی داشته باشد (Domnodetype)، بر اساس آن والدین و شرکت های تابعه تعیین می شود. در اکثر اسناد XML، شما می توانید شاخه های عنصر، ویژگی ها و شاخه های متن را پیدا کنید. ویژگی ها (ویژگی) نوع خاصی از شاخه هستند و شاخه های فرعی نیستند. مدیریت ویژگی استفاده می کند روش های ویژهارائه شده توسط XML DOM DOM.

علاوه بر اجرای رابط های توصیه شده در جهان جهانی وب (W3C)، مایکروسافت XML DOM شامل روشهایی است که از XSL، الگوهای XSL، فضاهای فضایی و انواع داده ها پشتیبانی می کند. به عنوان مثال، روش SelectNodes به شما امکان می دهد از XSL Templates Syntax (Syntax الگوی XSL XSL) برای جستجوی شاخه ها در یک زمینه خاص استفاده کنید و روش TransformNode از استفاده از XSL برای انجام تحولات پشتیبانی می کند.

تست سند XML

به عنوان نمونه ای از یک سند XML، کاتالوگ CD-ROM موسیقی را انتخاب کنید، که دارای ساختار زیر است:

Empire Burlesque باب دیلن ایالات متحده آمریکا. کلمبیا 10.90 1985 قلب خود را پنهان کن bonnie tylor. انگلستان. سوابق CBS 9.90 1988 ... قلبم را رها کن. جو کوکر ایالات متحده آمریکا. الی 8.20 1987

در حال حاضر ما آماده هستیم تا با توجه به مدل شیء XML DOM، آشنایی با آن با شیء XMLDOMDocument شروع کنیم.

سند XML - XMLDOMDocument Object

کار با سند XML با دانلود آن آغاز می شود. برای انجام این کار، از روش بار استفاده می کنیم که تنها یک پارامتر را نشان می دهد که URL سند دانلود شده را نشان می دهد. هنگام دانلود فایل ها از یک دیسک محلی، فقط نام فایل کامل مشخص شده است (فایل: /// پروتکل در این مورد می تواند حذف شود). اگر سند XML به عنوان یک رشته ذخیره شود، باید از روش loadXML استفاده شود تا چنین سند را دانلود کند.

برای کنترل روش دانلود یک سند (همگام یا ناهمگام)، اموال ASYNC استفاده می شود. به طور پیش فرض، این ویژگی درست است، نشان می دهد که سند بارگیری شده به صورت یکنواخت و کنترل به برنامه بازگردانده می شود، حتی تا زمانی که سند به طور کامل بارگذاری شود. در غیر این صورت، سند همزمان شده است، و سپس شما باید ارزش اموال ReadyState را بررسی کنید تا متوجه شوید، سند بارگذاری شده یا نه. شما همچنین می توانید یک Handler رویداد OnreadyStateChange ایجاد کنید که هنگام تغییر ارزش اموال Readystate کنترل را دریافت خواهید کرد.

در زیر نشان داده شده است چگونه برای دانلود سند XML با استفاده از روش بار:

کاربران ... msxml_tlb ... روش tform1.button1click (فرستنده: togject)؛ var xmldoc: ixmldomocument؛ شروع xmldoc: \u003d codomdocument.create؛ xmldoc.async: \u003d اشتباه؛ xmldoc.load ('c: \\ data \\ data.xml')؛ // // در اینجا کد است که Manipulates // سند XML و شاخه های آن // xmldoc: \u003d nil؛ پایان؛

پس از بارگذاری سند، می توانیم به خواص آن اشاره کنیم. بنابراین، اموال Nodename شامل ارزش #document، اموال Nodetypestring یک مقدار سند است، اموال URL فایل: /// C: /DATA/DATA.XML مقدار.

پردازش اشتباه است

از علاقه خاص، خواص مرتبط با پردازش سند زمانی که بارگذاری می شود. بنابراین، Property ParseError یک شی XMLDomParSerororororor را که حاوی اطلاعات خطا است که در طی فرآیند پردازش رخ داده است، باز می گرداند.

برای نوشتن یک handler خطا، می توانید کد زیر را اضافه کنید:

var XMLError: ixmldomparseError؛ ... xmldoc.load ('c: \\ data \\ data.xml')؛ XMLError: \u003d XMLDOC.ParseError؛ اگر XMLError.ErrorCode.<> 0 سپس // // در اینجا ما خطا را پردازش می کنیم // else memo1.lines.add (xmldoc.xml)؛ ... xmldoc: \u003d nil؛

برای پیدا کردن اطلاعاتی که در صورت خطا در مورد اطلاعات بازگشته است، قسمت زیر را تغییر دهید:

Empire Burlesque باب دیلن ایالات متحده آمریکا. کلمبیا 10.90 1985

حذف عنصر بسته شدن در خط دوم:</p><p> <CD> <TITLE>Empire Burlesque <ARTIST>باب دیلن</ARTIST> <COUNTRY>ایالات متحده آمریکا.</COUNTRY> <COMPANY>کلمبیا</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> </p><p>حالا کد را بنویسید که خواص Xmldomparseororororor را بازگرداند:</p><p>XMLError: \u003d XMLDOC.ParseError؛ اگر XMLError.ErrorCode.<> 0 سپس با XMLError، Memo1.lines شروع به اضافه کردن ('فایل:' + URL)؛ اضافه کردن ('کد:' + inttostr (ERRORCODE))؛ اضافه کردن ('خطا:' + دلیل)؛ اضافه کردن ('متن:' + srctext)؛ اضافه کردن ('ردیف:' + inttostr (خط))؛ اضافه کردن ('موقعیت:' + inttostr (linspos))؛ ENT ELTER MEMO1.LINES.ADD (XMLDOC.XML)؛ پایان؛</p><p>و درخواست ما را انجام دهید. به عنوان یک نتیجه، ما اطلاعات خطای زیر را به دست می آوریم.</p> <p>همانطور که از مثال فوق دیده می شود، اطلاعاتی که توسط Object XMLDomParseError بازگردانده می شود، به اندازه کافی برای تعیین خطا و درک علت وقوع آن است.</p> <p>در حال حاضر آیتم بسته شدن را بازیابی کنید <TITLE> در سند ما و ادامه بحث XML DOM.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> دسترسی به درخت سند</h2> <p>برای دسترسی به درخت سند، شما می توانید عنصر ریشه را دریافت کنید و سپس از طریق شرکت های تابعه خود، یا برخی شاخه های خاص را پیدا کنید. در اولین مورد، ما عنصر ریشه را از طریق اموال مستندسازی دریافت می کنیم، که یک شی از نوع XMLDOMNOMNODE را باز می کند. در زیر نشان داده شده است که چگونه از اموال مستند سازی استفاده کنید تا محتویات هر عنصر کودک را بدست آورید:</p><p>var node: ixmldomnode؛ ریشه: ixmldomelement؛ من: عدد صحیح؛ ... ریشه: \u003d xmldoc.documentelement؛ برای من: \u003d 0 به root.childnodes.length-1 شروع گره: \u003d root.childnodes.item [i]؛ memo1.lines.add (node.text)؛ پایان؛</p><p>برای سند XML ما، متن زیر را دریافت می کنیم.</p> <p>اگر ما علاقه مند به نوعی شاخه یا شاخه خاصی در زیر اولین شرکت تابعه هستیم، می توانیم از روش nodefromid یا روش GetElementbytagname از شی XMLDOMDocument استفاده کنیم.</p> <p>روش nodefromid نیاز به مشخص کردن یک شناسه منحصر به فرد تعریف شده در طرح XML یا تعریف نوع سند (DTD) دارد و یک شاخه را با این شناسه باز می کند.</p> <p>روش GetElementByTagname نیاز به نشان دادن یک رشته با یک عنصر خاص (برچسب) دارد و تمام شاخه ها را با این مورد باز می گرداند. در زیر نشان داده شده است که چگونه از این روش برای پیدا کردن تمام هنرمندان در دایرکتوری CD-ROM ما استفاده کنید:</p><p>گره ها: ixmldomnodelist؛ گره: ixmldomnode؛ ... گره ها: \u003d xmldoc.getElementsbytagname ('هنرمند')؛ برای من: \u003d 0 به nodes.length-1 شروع گره: \u003d nodes.Item [i]؛ memo1.lines.add (node.text)؛ پایان؛</p><p>برای سند XML ما، متن زیر را دریافت خواهیم کرد.</p> <p>توجه داشته باشید که روش انتخاب XMLDOMNode به روش انعطاف پذیر تر برای دسترسی به شاخه های سند ارائه می دهد. اما در مورد آن کمی پایین تر است.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> شعبه سند - Xmldomnode شی</h2> <p>شی XMLDOMNODE یک شاخه سند است. ما در حال حاضر با این شیء مواجه شده ایم، زمانی که عنصر ریشه سند به دست آمد:</p><p>ریشه: \u003d xmldoc.documentelement؛</p><p>برای به دست آوردن اطلاعات در شاخه سند XML، می توانید از خواص شی XMLDomNode استفاده کنید (جدول 1).</p> <p>برای دسترسی به داده های ذخیره شده در شاخه، معمولا از ملک NodeValue (در دسترس برای ویژگی ها، شاخه های متن، نظرات، دستورالعمل های پردازش و بخش های CDATA) یا ویژگی های متن که محتوای متن شاخه یا ملک NodetypedValue را باز می گرداند، استفاده کنید. دومی، با این حال، تنها می تواند برای شاخه های با عناصر تایپ شده استفاده شود.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h3> حرکت در درخت سند</h3> <p>شی XMLDOMNode راه های مختلفی را برای حرکت از طریق درخت سند فراهم می کند. به عنوان مثال، برای دسترسی به شعبه والدین، اموال Parentnode استفاده می شود، دسترسی به شاخه های کودک از طریق خواص Childnodes (XMLDChild نوع)، firstchild و lastchild (نوع xmldomnode) و غیره انجام می شود. املاک مالکیتی یک شی XMLDocument را که سند XML را شناسایی می کند، باز می کند. خواص فوق باعث می شود که از طریق درخت سند حرکت کند.</p> <p>حالا من تمام شاخه های سند XML را برطرف خواهم کرد:</p><p>ریشه: \u003d xmldoc.documentelement؛ برای من: \u003d 0 به root.childnodes.length-1 شروع گره: \u003d root.childnodes.item [i]؛ اگر node.haschildnodes سپس getchilds (گره، 0)؛ پایان؛</p><p>همانطور که در بالا ذکر شد، شی انتخاب شده XMLDomNode یک راه انعطاف پذیر تر برای دسترسی به شاخه های سند را فراهم می کند. علاوه بر این، یک روش SelectSingLende وجود دارد که تنها شاخه اول سند را باز می کند. هر دو این روش ها به شما این امکان را می دهد که قالب های XSL را برای جستجوی شاخه ها مشخص کنید.</p> <p>فرآیند استفاده از روش انتخابی را در نظر بگیرید تا تمام شاخه هایی را که دارای شاخه و تورم هستند، استخراج کنید.</p><p>ریشه: \u003d xmldoc.documentelement؛ گره ها: \u003d root.selectnodes ('cd / price')؛</p><p>مجموعه گره ها تمام شاخه های CD قیمت Switter قرار می گیرند. بحث در مورد الگوهای XSL کمی بعد بازمی گردد.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h3> دستکاری توسط شاخه های دختر</h3> <p>برای دستکاری از شرکت های تابعه، می توانیم از روش های شی XMLDOMNODE استفاده کنیم (جدول 2).</p> <p>به منظور حذف کامل رکورد دیسک اول، شما باید کد زیر را انجام دهید:</p><p>var xmldoc: ixmldomocument؛ ریشه: ixmldomnode؛ گره: ixmldomnode؛ xmldoc: \u003d codomdocument.create؛ xmldoc.async: \u003d اشتباه؛ xmldoc.load ('c: \\ data \\ data.xml')؛ // ریشه عنصر ریشه: \u003d xmldoc.documentelement؛ گره: \u003d ریشه؛ // حذف اولین شرکت فرعی node.removechild (node.firstchild)؛</p><p>لطفا توجه داشته باشید که در این مثال ما اولین شرکت تابعه را حذف می کنیم. نحوه حذف اولین عنصر اول شرکت تابعه، در زیر نشان داده شده است:</p><p>var xmldoc: ixmldomocument؛ ریشه: ixmldomnode؛ گره: ixmldomnode؛ xmldoc: \u003d codomdocument.create؛ xmldoc.async: \u003d اشتباه؛ xmldoc.load ('c: \\ data \\ data.xml')؛ // ریشه عنصر ریشه: \u003d xmldoc.documentelement؛ // و اولین گره فرعی: \u003d root.firstchild؛ // حذف اولین شرکت فرعی node.removechild (node.firstchild)؛</p><p>در مثال بالا، ما شاخه اول را حذف نکردیم. <CD>…</CD>، و اولین عنصر شاخه - <TITLE>….

در حال حاضر یک شاخه جدید اضافه کنید در زیر یک کد نشان می دهد که چگونه یک رکورد جدید از موسیقی CD-ROM را اضافه کنید:

var newnode: ixmldomnode؛ کودک: ixmldomnode؛ ... // ایجاد یک شاخه جدید - newnode: \u003d xmldoc.createnode (1، 'cd'، '')؛ // اضافه کردن عنصر کودک: \u003d xmldoc.createnode (1، عنوان "، '')؛ // اضافه کردن یک عنصر newnode.appendchild (کودک)؛ // و ارزش آن را از child.Text تنظیم کنید. Text: \u003d 'Pink Floyd'؛ // اضافه کردن عنصر <ARTIST> کودک: \u003d xmldoc.createnode (1، هنرمند "، '')؛ // اضافه کردن یک عنصر newnode.appendchild (کودک)؛ // و ارزش آن را از Child.Text: \u003d 'Division Bell'؛ // اضافه کردن عنصر <COUNTRY> کودک: \u003d xmldoc.createnode (1، "کشور"، '')؛ // اضافه کردن یک عنصر newnode.appendchild (کودک)؛ // و ارزش آن را از child.Text تنظیم کنید. Text: \u003d 'UK'؛ // اضافه کردن عنصر <COMPANY> کودک: \u003d xmldoc.createnode (1، 'شرکت'، '' ')؛ // اضافه کردن یک عنصر newnode.appendchild (کودک)؛ // و مقدار آن را تعیین کنید. Text: \u003d 'emi Records Ltd.؛ // اضافه کردن عنصر <PRICE>کودک: \u003d xmldoc.createnode (1، 'قیمت'، '')؛ // اضافه کردن یک عنصر newnode.appendchild (کودک)؛ // و ارزش آن را از Child.Text ایجاد کنید: \u003d '11 .99 "؛ // اضافه کردن یک عنصر <YEAR> کودک: \u003d xmldoc.createnode (1، 'سال'، '')؛ // اضافه کردن یک عنصر newnode.appendchild (کودک)؛ // و ارزش آن را از کودک تعیین کنید. Text: \u003d '1994'؛ // و شاخه root.appendchild را اضافه کنید (newnode)؛ ...</p><p>کد بالا دنباله ای از اقدامات زیر را برای اضافه کردن شاخه جدید نشان می دهد:</p> <ul><li>ایجاد یک شاخه جدید با استفاده از Createnode: <ul><li>ایجاد یک آیتم با استفاده از روش Createnode؛</li> <li>اضافه کردن یک عنصر به شاخه توسط روش Appendchild؛</li> <li>تنظیم ارزش عنصر از طریق اموال متن؛</li> <li>... برای همه موارد تکرار کنید.</li> </ul></li> <li>اضافه کردن یک شاخه جدید به سند توسط Appendchild.</li> </ul><p>به یاد بیاورید که روش Appendchild شاخه ای را در انتهای یک درخت اضافه می کند. برای اضافه کردن یک شاخه به یک مکان خاص از درخت، شما باید از روش insertbefore استفاده کنید.</p> <h2> مجموعه ای از شاخه ها - XMLDomNodelist شی</h2> <p>شیء XMLNodelist شامل لیستی از شاخه هایی است که می تواند با استفاده از روش های انتخابی یا GetElementsbyTagname ساخته شود و همچنین از ویژگی Childnodes به دست آمده است.</p> <p>ما قبلا استفاده از این شی را در مثال داده شده در بخش "حرکت در درخت سند" در نظر گرفته ایم. در اینجا ما همچنین برخی نظرات نظری را ارائه می دهیم.</p> <p>تعداد شاخه ها در لیست را می توان به عنوان ارزش اموال طول به دست آورد. شاخه ها دارای شاخص های 0 تا طول 1 هستند و هر شاخه فردی از طریق یک عنصر آرایه آیتم با شاخص مربوطه در دسترس است.</p> <p>حرکت بر روی لیست شاخه ها نیز می تواند با استفاده از روش NextNode که شاخه بعدی را در لیست باز می گرداند، یا NIL انجام شود، اگر شاخه فعلی دومی باشد. برای بازگشت به بالای لیست، باید روش تنظیم مجدد تماس بگیرید.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> ایجاد و ذخیره اسناد</h2> <p>بنابراین، ما به نحوه اضافه کردن شاخه ها و عناصر به اسناد موجود XML نگاه کردیم. حالا یک سند XML "در پرواز" ایجاد کنید. اول از همه، ما به شما یادآوری می کنیم که سند را می توان نه تنها از URL، بلکه از رشته معمولی بارگذاری کرد. در زیر نشان داده شده است که چگونه یک عنصر ریشه ایجاد کنید، که پس از آن می تواند به صورت پویا از عناصر باقی مانده استفاده شود (که ما قبلا در بخش "دستکاری شرکت های تابعه" در نظر گرفته ایم):</p><p>var xmldoc: ixmldomocument؛ ریشه: ixmldomnode؛ گره: ixmldomnode؛ S: ابریشمی؛ ... s: \u003d ' <CATALOG></CATALOG>'؛ xmldoc: \u003d codomdocument.create؛ xmldoc.async: \u003d اشتباه؛ xmldoc.loadxml (s)؛ ریشه: \u003d xmldoc.documentelement؛ گره: \u003d xmldoc.createnode (1، 'سی دی'، '')؛ root.appendchild (گره)؛ memo1.lines.add (xmldoc.xml)؛ ... xmldoc: \u003d nil؛</p><p>پس از ساخت یک سند XML، آن را در فایل با استفاده از روش ذخیره ذخیره کنید. مثلا:</p> <p>xmldoc.save ('c: \\ data \\ newcd.xml')؛</p> <p>علاوه بر صرفه جویی در فایل، روش ذخیره به شما اجازه می دهد تا یک سند XML را در یک شی XMLDOMDocument جدید ذخیره کنید. در این مورد، سند پردازش کامل است و به عنوان یک نتیجه، بررسی ساختار و نحو آن. در زیر نشان داده شده است که چگونه یک سند را در یک شی دیگر ذخیره کنید:</p><p>روش tform1.button2click (فرستنده: togject)؛ var xmldoc2: ixmldomocument؛ شروع xmldoc2: \u003d codomdocument.create؛ xmldoc.save (xmldoc2)؛ memo2.lines.add (xmldoc2.xml)؛ ... xmldoc2: \u003d nil؛ پایان؛</p><p>در نتیجه، ما یادآوری می کنیم که روش ذخیره نیز به شما اجازه می دهد تا یک سند XML را به سایر اشیاء COM که از Istream، IsetStream یا Ipesciststreaminit پشتیبانی می کنند، ذخیره کنید.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> با استفاده از قالب های XSL</h2> <p>بحث در مورد روش انتخاب شیء XMLDOMNode، ما اشاره کردیم که یک روش انعطاف پذیر تر برای دسترسی به شاخه های سند فراهم می کند. انعطاف پذیری در این واقعیت است که به عنوان یک معیار برای انتخاب شاخه ها، شما می توانید یک قالب XSL را مشخص کنید. چنین قالب هایی یک مکانیزم قدرتمند برای جستجوی اطلاعات در اسناد XML ارائه می دهند. به عنوان مثال، به منظور دریافت لیستی از تمام نام های موسیقی CD-ROM در دایرکتوری ما، شما می توانید پرس و جو زیر را دنبال کنید:</p><p>برای پیدا کردن اینکه آیا دیسک هایی از آن هنرمندان در ایالات متحده آزاد می شوند، درخواست به صورت زیر تشکیل شده است:</p><p>گره ها: \u003d root.selectnodes ('CD / Artist')؛</p><p>در زیر نشان داده شده است که چگونه اولین دیسک را در دایرکتوری پیدا کنید:</p><p>گره ها: \u003d root.selectnodes ('cd / title')؛</p><p>و بالاخره:</p><p>گره ها: \u003d root.selectnodes ('cd / title')؛</p><p>برای پیدا کردن دیسک های باب دیلان، می توانید پرس و جو زیر را انجام دهید:</p><p>گره ها: \u003d root.selectnodes ('CD [$ arst \u003d "bob dylan"] / عنوان')؛</p><p>و برای دریافت لیستی از دیسک های منتشر شده پس از سال 1985، ما پرس و جو زیر را انجام می دهیم:</p><p>گره ها: \u003d root.selectnodes ('cd / title')؛</p><p>بحث دقیق تر از Syntax XSL نیاز به انتشار جداگانه دارد. به خوانندگان فریبنده و تحقیق بیشتر تحقیقات، من تنها یک نمونه کوچک از استفاده احتمالی XSL را ارائه خواهم داد. فرض کنید ما باید دایرکتوری ما را به جدول HTML معمولی تبدیل کنیم. با استفاده از روش های سنتی، ما باید تمام شاخه های درخت را مرتب کنیم و برای هر مورد به دست آمده برای تشکیل برچسب های مربوطه <TD>…</TD>.</p> <p>با استفاده از XSL، ما به سادگی یک قالب (یا جدول سبک) ایجاد می کنیم، که در آن ما نشان می دهیم چه چیزی و نحوه تبدیل آن را نشان می دهیم. سپس ما این الگو را به کاتالوگ ما تحمیل می کنیم و آماده می شویم: قبل از ما متن از قالب XSL، که دایرکتوری را در جدول (فهرست 2) تبدیل می کند.</p> <p>کد برای پوشش دادن قالب XSL به کاتالوگ ما به نظر می رسد این است:</p><p>روش tform1.button2click (فرستنده: togject)؛ var xsldoc: ixmldomocument؛ شروع xsldoc: \u003d codomdocument.create؛ xsldoc.load ('c: \\ data \\ data.xsl')؛ memo2.text: \u003d xmldoc.transformnode (xsldoc)؛ xsldoc: \u003d nil؛ پایان؛</p><p>با تکمیل بحث ما از XSL، باید گفت که در حال حاضر این زبان به طور فعال برای تبدیل بین اسناد XML مختلف، و همچنین برای قالب بندی اسناد استفاده می شود.</p> <table border="0" width="100%"><tr><td width="50%"> </td> <td width="50%"> </td> </tr></table><h2> نتیجه</h2> <p>به دلایل کاملا قابل فهم، در یک مقاله غیر ممکن است که تمام اشیاء XML مایکروسافت XML را در نظر بگیریم و نمونه هایی از استفاده آنها را بیان کنیم. در اینجا ما تنها در مورد مسائل اصلی استفاده از XML DOM در برنامه ها لمس کردیم. در برگه 3 تمام اشیاء اجرا شده در مایکروسافت XML DOM را نشان می دهد.</p> <p>ComputerPress 12 "2000</p> <p>سفارش دادن وظایف حل شده در دلفی <br> دلفی دومین زبان برنامه نویسی است که دانش آموزان اغلب در فرآیند یادگیری آشنا می شوند. این آغاز یادگیری برنامه نویسی شی گرا است. من، به عنوان یک دانش آموز، به این نتیجه رسیدم که هیچ روش ساده تر برای کارشناسی ارشد زبان وجود ندارد تا یک ماشین حساب را روی آن بنویسید. حتی اگر عملکرد ابتدایی علاوه بر دو عدد را درک کنید، این در حال حاضر در نور زیادی است.</p> <p>CodeGaear، Delphi 7، لازاروس کامپایلر های مختلفی است، برنامه هایی که به کد ماشین نوشته شده توسط شما منتقل می شوند، آن را به Zoliki تبدیل می کنند. این همه برنامه ها برای ایجاد برنامه ها و نه زبان های برنامه نویسی جدا نیست. این کامپایلرها از زبان برنامه نویسی پاسکال استفاده می کنند که زبان دلفی را شامل می شود، که شبیه نحوی شبیه به پاسکال معمولی است، اما به طور قابل توجهی متفاوت عمل می کند. <br></p> <h2>نحو زبان برنامه نویسی چیست؟</h2> <p>این یک فرمت برای نوشتن اپراتورهای مختلف است. به عنوان مثال، چرخه "برای" در پاسکال دارای فرمت زیر است: "برای n: \u003d 1 به k انجام، و غیره</p><p>در زبان برنامه نویسی C ++، همان چرخه تا حدودی متفاوت نوشته شده است: برای (n \u003d 1؛ n ما یک ماشین حساب بنویسیم</p><p>این به شما می دهد تا بدانید که چگونه اشیاء با کد برنامه تعامل دارند، چه متغیرها چیست، چگونه توابع ریاضی کار می کنند. تمام برنامه نویسی در هر صورت محاسبه خواهد شد. این بازی همچنین یک برنامه است که به طور مداوم چیزی را در نظر می گیرد، با اعداد و توابع عددی کار می کند. برنامه نویسی از ریاضیات جدا نیست.</p> <p>ما برای نوشتن محیط توسعه لازاروس استفاده می کنیم. عملکرد آن به عنوان غنی نیست، به عنوان مثال، Codegear، اما دسترسی آزاد است و برای مطالعه طراحی شده است.</p><p>باز کردن محیط توسعه، شکل و پانل عناصر را می بینیم. در اینجا یک فرم است</p> <p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-24.jpg' width="100%" loading=lazy loading=lazy></p><p>در اینجا پانل عنصر است.</p><p>اولین کاری که ما انجام خواهیم داد این است که سه مورد را که نیاز به اجرای تابع اضافه شده از دو عدد اضافه کنید اضافه کنید. ما نیاز داریم: "تدیت" در تعداد سه قطعه و "Tbutton". در تصویر زیر، آنها در پانل فلش نشان داده شده است. بر روی آنها یک بار کلیک کنید، و سپس یک بار در شکل، و آنها بر روی آن ظاهر می شود.</p><p>این زمینه های متنی برای ورودی و یک دکمه منظم است. شما این عناصر را با استفاده از تقریبا هر برنامه ویندوز مواجه می کنید. نگاهی بیاندازید.</p><p><img src='https://i1.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-27.jpg' width="100%" loading=lazy loading=lazy><br></p> <p>اکنون این کتیبه ها را تمیز کنید. روی برگه مشاهده کلیک کنید. و بر روی "بازرس اشیاء" کلیک کنید. این پنجره ظاهر خواهد شد.</p><p><img src='https://i0.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-28.jpg' width="100%" loading=lazy loading=lazy></p><p>یکبار روی عنصر ما "دکمه" را روی فرم کلیک کنید و مقدار "عنوان" را در پنجره بازرس به هر چیز دیگری تغییر دهید. به عنوان مثال، در کلمه "OK". روی Enter کلیک کنید ما در فرم می بینیم، زیرا عنصر نام را تغییر داده است.</p><p>فقط آن را با ویرایش انجام دهید، فقط تغییر نام ندهید، اما ما آنها را بدون هیچ گونه محتوایی انجام خواهیم داد. ما آنها را به نوبه خود برجسته می کنیم و مقدار متن را در بازرس تمیز می کنیم. فراموش نکنید که ENTER را فشار دهید.</p><p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-29.jpg' width="100%" loading=lazy loading=lazy></p><p>با توجه به نتیجه، فرم ما به نظر می رسد این.</p><p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-30.jpg' width="100%" loading=lazy loading=lazy><br></p> <p>حالا که ماشین حساب ما به دست آورد، شما باید کد نرم افزاری لازم را برای روش دکمه ما ثبت کنید. روی دکمه دکمه دوبار کلیک کنید و ویرایشگر منبع را باز کنید.</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>دیدن؟ دکمه 1CLICK این یک روش است که مسئول آنچه اتفاق می افتد زمانی که ما بر روی دکمه یک بار کلیک می کنیم. و موارد زیر باید رخ دهد: برنامه در ویرایش سوم مورد نیاز است تا مبلغ اعداد را که در دو فیلد اول معرفی شده است، به ما بدهد. ما کد را بنویسیم</p><p><img src='https://i1.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-32.jpg' width="100%" loading=lazy loading=lazy></p><p>چنین 5 خط ساده از کد ما نیاز به نوشتن. نظرات و توضیحات در تصویر بالا قابل مشاهده است. پس از آن، روی این دکمه کلیک کنید.</p> <p>مجموعه ای از پروژه ما کامپایل خواهد شد. این در برنامه مونتاژ خواهد شد. ما اعداد را در دو فیلد اول وارد می کنیم، روی دکمه کلیک کنید و مقدار مقدار را دریافت کنید.</p><p><img src='https://i2.wp.com/reshatel.org/wp-content/uploads/2018/09/Bez-imeni-34-2.jpg' width="100%" loading=lazy loading=lazy></p> <h2>نتیجه</h2> <p>شما می توانید بر روی دکمه "فایل" کلیک کنید، سپس "ذخیره کردن همه چیز"، پوشه را انتخاب کنید و یک برنامه کامل را انتخاب کنید، شروع آن را می توانید از دسکتاپ انجام دهید. در حال حاضر سعی کنید آن را به خودتان بفهمید که باید در این کد بازنویسی کنید تا برنامه باید توسط دو عدد تقسیم شود و نه بسته بندی نشده است. نکته: شما باید نوع داده را تغییر دهید. ویدئو زیر یک مثال مشابه را نشان می دهد، اما در دلفی 7، نه لازاروس.</p><p><span class="6qR5tjJKK3g"></span></p> <p>بسیاری از برنامه نویسان دلفی، صرفه جویی در تنظیمات مرتبط هستند <i>ini</i> فایل ها در برنامه های خود. استفاده از این روش، در پروژه های کمتر جدی، لازم است از آن جلوگیری شود، زیرا انعطاف پذیری آن را محدود می کند، که مانع گسترش بیشتر برنامه می شود. لازم به ذکر است که به دلیل سهولت استفاده و حضور وجوه داخلی در محیط توسعه، چنین رویکردی بسیار محبوب است. <br><br> با این حال، گزینه ایده آل برای ذخیره سازی تنظیمات برنامه ساختار یافته است <i>XML</i> فایل ها. مزیت آنها این است که تعداد پارامترها ممکن است ثابت نشوند. برای درک بهتر این، یک مثال خاص را در نظر بگیرید.</p><p>در برنامه تحقیق، هنگامی که روی ضبط کلیک میکنید، منوی زمینه به نظر می رسد، که لیست نقاط را نمایش می دهد. این موارد دستورات است که به نوبه خود از فایل تنظیمات دانلود می شود. در صورتی که تنظیمات در آن ذخیره شود <i>ini</i> فایل، این برنامه می تواند یک تعداد معینی از دستورات را ذخیره و بارگذاری کند، به عنوان مثال 10 یا 50. به محض اینکه شما نیاز به اهمیت بیشتری دارید، باید کد را بازنویسی کنید و به همین ترتیب آن را مجددا کامپایل کنید.</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> استفاده از رویکرد با استفاده از <i>XML</i> فایل ها، ما توانایی دانلود تمام پارامترهای بخش به صورت پویا را داریم. برای این همه، فایل پیکربندی ظریف تر می شود، بدون تعداد بیش از حد پارامترها. با این حال، ابزار استاندارد برای کار با <i>XML</i> دلفی دارای اشکالاتی است، بنابراین من توصیه می کنم با استفاده از کتابخانه استاندارد <b>msxml</b>. معمولا بخشی پیش فرض سیستم های خانوادگی ویندوز است.</p><p><img src='https://i2.wp.com/zoo-mania.ru/wp-content/uploads/2011/08/settings.xml_.jpg' align="center" width="100%" loading=lazy loading=lazy><br> برای اتصال <b>msxml</b>ما باید یک فایل رابط را با لیستی از تمام توابع با وارد کردن آن از سرور COM تشکیل دهیم. نحوه وارد کردن رابط، مقاله های دقیق به اندازه کافی نوشته نشده است، من پیشنهاد می کنم فایل را دانلود کنید <b>msxml2_tlb.pas.</b> در حال حاضر آماده استفاده است. پس از دانلود فایل، آن را در کنار پروژه خود قرار دهید یا به پوشه Delphi Lib Lib بروید. بنابراین، تمام برنامه های ایجاد شده قادر به استفاده از ماژول خواهند بود. <b>msxml</b>، به اندازه کافی برای اضافه کردن msxml2_tlb به استفاده می شود.</p><p>برای وضوح، مثال زیر از کاربرد این کتابخانه را در نظر بگیرید:</p><p>روش loaddata؛ var xmldoc: domdocument؛ ریشه: ixmldomelement؛ شروع xmldoc: \u003d codomdocument.create؛ xmldoc.load ("settins.xml")؛ ریشه: \u003d xmldoc.documentelement؛ ShowMessage ("اندازه / عرض"). متن)؛ ریشه: \u003d صفر؛ xmldoc: \u003d nil؛ پایان؛</p><p>اول، یک نمونه از کلاس DomDocument ایجاد شده است، پس از آن محتویات فایل settings.xml به حافظه بارگذاری می شود. به عنوان طبق استاندارد هر <i>XML</i> فایل باید حاوی برچسب ریشه باشد (در این مورد <i>پیکربندی</i>)، ما باید آن را با استفاده از تابع دریافت کنیم <i>مستند سازی</i>. سپس محتویات محتوای بین برچسب ها <width></width> که به نوبه خود بین برچسب ها است <size></size> . بنابراین، از فایل settings.xml، روش ما متن را در پیامبازی قرار می دهد <i>"100px"</i>.</p><p> <?xml version="1.0" encoding="utf-8"?> <config> <size> <height>500px</height> <width>100px</width> </size> </config> </p><p>در اینجا روش SelectSingLende اعمال می شود، که رشته را به عنوان یک پارامتر می گیرد.</p> <p>خوش آمدی! این وبلاگ به اینترنت و رایانه اختصاص داده شده است، و دقیق تر، آنها به آنها اختصاص داده شده است.</p> <p>احتمالا بلافاصله دیده می شود که سالها سالها در این سایت به نظر نمی رسد. بله، این سرنوشت اکثر وبلاگ ها است. هنگامی که این پروژه یک تعهد بلندپروازانه بود، و نویسنده، همانطور که در بسیاری دیگر که در آن زمان نوشت، طرح های گسترده ای برای تبدیل شدن به یکی از بهترین وبلاگ نویسان روسی بود. خوب، اگر شما در حال حاضر نگاه کنید، پس از آن وبلاگ هایی که به طور همزمان با من ساخته شده اند، اکثر آنها در ابدیت حل شده اند. و من به تازگی از دست رفته وبلاگ زمان شد. بنابراین بله، دیگر به روز نمی شود. اگر چه من یک بار در این سایت در رقابت های وبلاگ سال 2011 برنده شدم.</p> <p>من حتی این ایده را برای حذف این همه، اما پس از آن من مواد قدیمی را اصلاح کردم، و متوجه شدم که آنها هنوز هم می توانند برای خوانندگان مفید باشند. بله، برخی از مقالات منسوخ شده اند (اگر من قدرت کافی داشته باشم، علامت های مناسب را دریافت می کنند)، اما سایت، به عنوان مثال، می تواند برای مبتدیان مفید باشد - در اینجا شما می توانید در مورد مفاهیم اساسی اینترنت بخوانید، یاد بگیرید که سفارشی کنید اینترنت، ویندوز یا حتی تصمیم به رفتن به لینوکس. بنابراین به عنوان ها نگاه کنید و یکی را انتخاب کنید که برای شما مناسب است.</p> <p>و بعد از همه، امیدوارم این بیش از یک وبلاگ باشد، اما یک راهنمای واقعی اینترنت است. این سایت را می توان در حالت دایرکتوری یافت، که در آن تمام مقالات موجود توسط دسته ها ساختار یافته است. و چه کسی می داند شاید مقالات با کیفیت جدید شروع به نمایش در اینجا.</p> <p><i>ساندر</i></p> <p>Picodi.ru یک پورتال تخفیف از کوپن های بین المللی، متخصص لهستانی در صرفه جویی و خرید ارزان است. قطب ها یکی از ملت های اقتصادی ترین در جهان محسوب می شوند، بنابراین تعجب آور نیست که این نوع پروژه از راه اندازی لهستانی Kodyrabatowe.pl رشد کرده است. چه چیزی می تواند برای این پورتال به یک کاربر اینترنت معمولی در روسیه مفید باشد؟</p> <p>تلفن های مدرن آندروید بیش از گوشی هستند. شما به مجموعه ای از برنامه های نصب شده، به تاریخ تماس های شما و پیام های متنی، مجموعه عکس ها و بسیاری استفاده می کنید. اما زمان می رود، و دستگاه کاملا مرتب شده شروع به کاهش سرعت، اشکال، و یا به سادگی یک دیدگاه قابل ارائه را از دست می دهد به دلیل تراشه بر روی بدن و یا خراش بر روی صفحه نمایش. یک سوال از انتخاب یک تلفن جدید و تغییر گوشی آندروید وجود دارد. و اگر سوال انتخاب، ما اکنون حزب را از بین ببریم، پس از آن "حرکت" به یک تلفن جدید باقی می ماند یک مشکل جدی - من کاملا نمی خواهم تمام اطلاعات را از ابتدا شروع کنم. در اینجا ما در مورد این امروز صحبت خواهیم کرد.</p> <p>اکثر خوانندگان این وبلاگ، به احتمال زیاد، هرگز با نسخه های کنترل نسخه مواجه نیستند و در آینده ای نزدیک نخواهند بود. و متاسفم. این اختراع بسیار کاربر پسند به طور گسترده ای توسط برنامه نویسان مورد استفاده قرار می گیرد، اما به نظر من، می تواند بسیار مفید باشد و به کسانی که به طور فعال با متون کار می کنند. اما، احتمالا، هیچ سیستم کنترل نسخه وجود ندارد، که آسان خواهد بود شروع به استفاده از "دفتر" (مایکروسافت آفیس) کار. با این وجود، من فکر می کنم که مواد موجود در مقاله ممکن است برای همه خوانندگان جالب باشد.</p> <p>اگر شما در مورد چگونگی تماشای فیلم تلویزیونی خود در شبکه و دسترسی به اینترنت فکر کردید، این مقاله برای شماست. نه، من می دانم که برخی از تلویزیون ها قابلیت های تلویزیون هوشمند را دارند، اما من هرگز آن را ندیده ام. ظاهرا، بنابراین، گوگل اخیرا یک دستگاه کاملا خیره کننده را نشان داد، بلافاصله با یک احساس به پایان رسید. ما در مورد Media Streamer Chromecast (Chromkast) صحبت می کنیم، نسخه ای کامل و مقرون به صرفه تر از بازیکن مورد علاقه سال گذشته Nexus Q.</p> <p>Dongle Chromkast، ابعاد که از 2 اینچ تجاوز نمی کند، به پورت تلویزیون HDMI متصل می شود و به شما امکان می دهد از تماشای محتوای وب جریان لذت ببرید. برای کنترل Streamer، می توانید از هر دستگاه (قرص، رایانه های شخصی، گوشی هوشمند) بر اساس پلت فرم عامل iOS، ویندوز، آندروید یا Mac OS استفاده کنید.</p> <p>این مقاله به دستگاه حافظه سیستم آندروید اختصاص داده شده است، مشکلات که ممکن است ناشی از فقدان آن و نحوه حل آنها باشد. من خودم تا مدت کوتاهی نداشتم که گوشی آندروید من شروع به طور منظم پیام های مربوط به کمبود حافظه را در هنگام تلاش برای ایجاد یک برنامه خاص آغاز کرد. با وجود این که در توضیحات در بازار، باید حدود 16 گیگابایت وجود داشته باشد، برای من بسیار عجیب بود، و همچنین این حجم را با استفاده از یک کارت حافظه اضافی افزایش دادم. با این حال، مشکل این بود، و قبل از اینکه راه حل مناسب را پیدا کنم، مجبور بودم که دسترسی به ریشه یا بازیابی کامل گوشی را به وضعیت کارخانه نیاز داشته باشم، باید کاملا به طور کامل تینکر کنم.</p> <p>به تازگی، توجه زیادی به ساختن سیستم های کسب و کار الکترونیکی پرداخت می شود، یا به عنوان آنها نیز نامیده می شود - B2B (کسب و کار به کسب و کار). با توجه به توصیه های در ساخت سیستم های جریان مبادله از هماهنگی فن آوری های اینترنت از بدن - WWW کنسرسیوم: تاکید بر فناوری های XML و ساخت سیستم های اسناد اسناد XML ساخته شده است.</p> <p>مزیت استفاده از XML در تجارت الکترونیک، راندمان بالا سیستم های B2B در هزینه های پایین برای ایجاد آن به علت نمایش روشن و بصری اطلاعات ساختاری، توانایی استفاده از پروتکل های شبکه مدرن و ایجاد سیستم های کسب و کار در زمان واقعی است.</p> <p>استقلال ارائه اطلاعات در قالب اسناد XML اجازه می دهد تا متفاوت، شرکت در کسب و کار الکترونیکی، برای تولید مستقل از یکدیگر توسط.</p> <p>در همه سیستم ها، مبادله معمولا توسط یک طرح مشابه با استفاده از درخواست های HTTP ساخته شده است. پروتکل SSL به عنوان پروتکل SSL اعمال می شود (اما این یک موضوع جداگانه است).</p> <p>یکی از گزینه های احتمالی برای پردازش پیام های XML، ساخت اجزای BIN / CGI (ISAPI) -News یا COM (سرور) تشکیل یا پردازش اسناد XML است.</p> <p>از یک طرف، برنامه به عنوان یک مشتری عمل می کند، که در حالت پست یک پرس و جو HTTP را مطرح می کند، از سوی دیگر، یک سرور وب در کنار آن پردازش پرس و جو و پاسخ پردازش شده است. تبادل اطلاعات از اسناد XML استفاده می کند.</p> <p>یکی از موثرترین گزینه های پیاده سازی، استفاده از تجزیه کننده XML موجود است که از مدل DOM پشتیبانی می کند. چنین تجزیه کننده عرضه توزیع کننده Win`98 یا بخش انتگرال IE 4.7 و بالاتر (برای Win`95) است و نشان دهنده سرور COM واقع در کتابخانه msxml.dll است.</p> <p>مدل Object Component (COM) داده ها و روش ها را به یک جوهر تک و راهی برای دسترسی به آنها از طریق سیستم رابط بسته بندی شده است. دلفی به سادگی برای دسترسی به کلاس های شیء COM قابل دسترسی است (چندین کلاس ممکن است در یک سرور COM گنجانده شود). دسترسی به اشیاء توسط مقداردهی کردن نمونه کلاس از طریق سیستم رابط انجام می شود. شرح رابط ها توسط زبان تعریف رابط (IDL) انجام می شود، که ممکن است به طور خودکار وسیله ای از رسانه انجام شود.</p> <p>دلفی به معنای واردات از سرور COM است <i>msxml.dll</i>فایل های توضیحات رابط IDL ساخته شده اند و فایل توصیفی باینری نوع کتابخانه TLB است. این عملیات از طریق منوی سیستم انجام می شود: <b>پروژه | تایپ کتابخانه واردات:</b>(تصویر 1). کادر محاوره ای زیر به نظر می رسد (شکل 2)، که در آن شما می خواهید یک شی COM را انتخاب کنید (در مورد ما، شی به عنوان "Microsoft.XMLDOM (نسخه 2.0)" ثبت شده است و یک فایل TLB ایجاد کنید (دکمه <b>ایجاد واحد</b>) با استفاده از فایل TLB، محیط زیست "Paskalevsky" توضیحات فایل COM سرور را تولید می کند - msxml_tlb.pas</p> <p>فایل msxml_tlb.pas تمام رابط ها، ثابت ها و سرورهای COM را توصیف می کند.</p> <p>برای دسترسی به اشیاء عنصر COM، در این دستورالعمل ضروری است <b>استفاده می کند.</b>نام فایل توضیحات کتابخانه را اضافه کنید (msxml_tlb.pas). در زیر ساده ترین برنامه است که از آنالایزر MSXML.dll استاندارد DOM استفاده می کند که سند XML را دانلود می کند و آن را در عنصر جعبه MEMO1 نمایش می دهد.</p> <b>استفاده می کند.</b> ویندوز، پیام ها، Sysutils، کلاس ها، گرافیک ها، کنترل ها، فرم ها، گفتگوها، Oleserver، MSXML_TLB، StdCtrls؛ <b>نوع</b> tform1 \u003d. <b>کلاس</b>(TFORM) دکمه 1: tbutton؛ memo1: tmemo؛ <b>روش.</b> دکمه 1 کلیک کنید (فرستنده: togject)؛ <b> پایان؛</b> <b>var</b> فرم 1: tform1؛ <b>پیاده سازی</b> ($ r * .dfm) <b>روش.</b>tform1.button1click (فرستنده: togject)؛ <span> // اعلامیه Soklass Object DomDocument؛</span> <b>var</b>codoc: codomdocument؛ <span> // کلاس، سازگار با رابط کاربری iDomDocument؛</span> <b>var</b>doc: ixmldocument؛ <b>شروع.</b> <span> // ایجاد یک نمونه از شی DomDocument؛</span> doc: \u003d codoc.create؛ <span> // یک روش حالت از یک نمونه از شی DomDocument را فراخوانی کنید؛</span> doc.load ("data.xml")؛ <span> // دسترسی به نمونه مالکیت XML از شی DomDocument؛</span> memo1.text: \u003d doc.xml؛ <b>پایان؛</b> <b>پایان.</b> <h2>مفهوم DOM - مدل سند Object</h2> <p>هر سند XML به عنوان مجموعه ای از تعدادی از اشیاء (کلاس ها) نشان داده شده است، که دسترسی به عناصر فردی (زمینه های شی) ممکن است. DOM - رابط دسترسی به هر دو اشیاء ساده DOMString یا PrincesData را توصیف می کند یا عناصر XML جداگانه سند را جدا می کند: DomFragmentElement، Domnode، Domelement.</p> <p>موارد زیر مهم ترین ویژگی ها و روش های XMLDOMDocument، XMLDOMNODE، XMLDOMNOMELIST هستند. لازم به ذکر است که مدل MSXML.dll XML XML، تجزیه و تحلیل XML XML MSXML.DLL، ارائه شده توسط آنالیز XML XML MSXML.DLL از کنسرسیوم DOM تایید شده توسط مدل W3C استفاده می شود.</p> <p>شرح کامل تر از اشیاء DOM رابط را می توان یافت</p> <table cellspacing="0" cellpadding="4" width="500" border="1"><tbody><tr><td valign="top" colspan="2"> شی XMLDOMDocument</td> </tr><tr><td valign="top" colspan="2">سطح بالایی از سلسله مراتب شی را نشان می دهد و شامل روش هایی برای کار با یک سند است: دانلود، تجزیه و تحلیل، ایجاد عناصر، ویژگی ها، نظرات، نظرات در آن و غیره .</td> </tr><tr><td valign="top" colspan="2"><b>خواص</b> </td> </tr><tr><td valign="top" width="39%"><b>async</b> </td> <td valign="top" width="61%">اموال شناسایی حالت پردازش فعلی</td> </tr><tr><td valign="top" width="39%" height="19"><b>خطای تجزیه</b> </td> <td valign="top" width="61%" height="19">یک مرجع به شیء پردازش خطا xmldomparseError را باز می کند</td> </tr><tr><td valign="top" width="39%"><b>فعال کردن - غیرفعال کردن تأیید سند</b> </td> <td> </td> </tr><tr><td valign="top" width="39%"><b>url</b> </td> <td valign="top" width="61%">URL سند را باز می گرداند</td> </tr><tr><td valign="top" width="39%"><b>مستند سازی</b> </td> <td valign="top" width="61%">حاوی یک مرجع به عنصر ریشه سند به عنوان یک شی XMLDOMemement است.</td> </tr><tr><td valign="top" colspan="2"><b>مواد و روش ها</b> </td> </tr><tr><td valign="top" width="39%"><b>بار (URL) <br>loadxml (xmlstring)</b> </td> <td valign="top" width="61%">یک سند XML را بارگذاری می کند</td> </tr><tr><td valign="top" width="39%"><b>ذخیره (objtarget)</b> </td> <td valign="top" width="61%">سند XML را در فایل ذخیره می کند</td> </tr><tr><td valign="top" width="39%"><b>abort</b> </td> <td valign="top" width="61%">قطع روند دانلود و پردازش سند.</td> </tr><tr><td valign="top" width="39%"><b>createattribute (نام)</b> </td> <td valign="top" width="61%">یک ویژگی جدید را با نام مشخص شده برای مورد فعلی ایجاد می کند.</td> </tr><tr><td valign="top" width="39%"><b>createnode (نوع، نام، nameSpaceuri)</b> </td> <td valign="top" width="61%">یک گره از نوع مشخص شده و عنوان را ایجاد می کند</td> </tr><tr><td valign="top" width="39%"><b>createElement (برچسب)</b> </td> <td valign="top" width="61%">یک عنصر سند را با نام مشخص شده ایجاد می کند.</td> </tr><tr><td valign="top" width="39%"><b>createTextNode (داده ها)</b> </td> <td valign="top" width="61%">متن را درون سند ایجاد می کند</td> </tr><tr><td valign="top" width="39%"><b>getElementsytagname (Tagname)</b> </td> <td valign="top" width="61%">یک پیوند را به مجموعه ای از موارد سند با نام مشخص شده بازگرداند</td> </tr><tr><td valign="top" width="39%"><b>nodefromid (idstring)</b> </td> <td valign="top" width="61%">عنصر جستجو توسط شناسه</td> </tr></tbody></table><br><table cellspacing="0" cellpadding="4" width="500" border="1"><tbody><tr><td valign="top" colspan="2"> <b>شی XMLDOMNODE</b> </td> </tr><tr><td valign="top" colspan="2">شی XMLDOMNODE که رابط اصلی DOM را اجرا می کند <b>گره</b>، طراحی شده برای دستکاری با یک گره جداگانه از یک درخت سند. خواص و روش های آن به شما این امکان را می دهد که اطلاعات کامل در مورد گره فعلی دریافت و تغییر دهید - نوع، نام، نام کامل، محتویات آن، لیستی از عناصر کودک و غیره</td> </tr><tr><td valign="top" colspan="2"><b>خواص</b> </td> </tr><tr><td valign="top" width=" "><b>nodename، Basename.</b> </td> <td valign="top" width="65%">نام گره فعلی را باز می گرداند.</td> </tr><tr><td valign="top" width="35%"><b>پیشوند</b> </td> <td valign="top" width="65%">پیشوند فضای نام را باز می گرداند</td> </tr><tr><td valign="top" width="35%"><b>نوع داده.</b> </td> <td valign="top" width="65%">نوع محتوا گره فعلی را تعریف می کند</td> </tr><tr><td valign="top" width="35%"><b>nodetype، nodetypestring</b> </td> <td valign="top" width="65%">نوع گره فعلی را باز می گرداند:</td> </tr><tr><td valign="top" width="35%"><b>ویژگی های.</b> </td> <td valign="top" width="65%">لیستی از ویژگی های گره فعلی را به عنوان مجموعه xmldomnammenmapap باز می گرداند.</td> </tr><tr><td valign="top" width="35%"><b>متن</b> </td> <td valign="top" width="65%">محتویات پشتیبانی فعلی را در قالب متن باز می گرداند.</td> </tr><tr><td valign="top" width="35%"><b>xML</b> </td> <td valign="top" width="65%">نمایندگی XML از پشتیبانی فعلی را باز می گرداند.</td> </tr><tr><td valign="top" width="35%"><b>nodeValue</b> </td> <td valign="top" width="65%">محتویات گره فعلی را باز می گرداند.</td> </tr><tr><td valign="top" width="35%"><b>childnodes.</b> </td> <td valign="top" width="65%">لیستی از عناصر کودک را به عنوان xmldomnodelist باز می گرداند.</td> </tr><tr><td valign="top" width="35%"><b>lastchild، lastchild.</b> </td> <td valign="top" width="65%">عنصر اول / آخرین فرزند را باز می گرداند</td> </tr><tr><td valign="top" width="35%"><b>قبلی، nextsibling</b> </td> <td valign="top" width="65%">عنصر پرستاری قبلی / بعدی را باز می گرداند.</td> </tr><tr><td valign="top" width="35%"><b>parentnode.</b> </td> <td valign="top" width="65%">حاوی یک مرجع به عنصر والدین است.</td> </tr><tr><td valign="top" width="35%"><b>مالکیت</b> </td> <td valign="top" width="65%">اشاره گر را به سند بازگرداند که در آن گره فعلی واقع شده است.</td> </tr><tr><td valign="top" colspan="2"><b>مواد و روش ها</b> </td> </tr><tr><td valign="top" width="35%"><b>appendchild (NewChild)</b> </td> <td valign="top" width="65%">یک عنصر جدید کودک را به گره فعلی اضافه می کند.</td> </tr><tr><td valign="top" width="35%"><b>insertborefore (newchild، refchild)</b> </td> <td valign="top" width="65%">یک گره کودک را وارد کنید، آن را در زیر قسمت زیر "سمت چپ" گره مشخص شده توسط پارامتر Refchild مشخص کنید.</td> </tr><tr><td valign="top" width="35%"><b>clonenode (عمیق)</b> </td> <td valign="top" width="65%">یک کپی از عنصر فعلی ایجاد کنید.</td> </tr><tr><td valign="top" width="35%"><b>getAttribute</b><b>(نام) <br> </b><b>getattributenode.</b><b><span> (نام) <br>setattribute (نام، ارزش) <br>setattributenode (xmldomattribute)</span> </b> </td> <td valign="top" width="65%">دسترسی به ویژگی ها (ایجاد، خواندن، نوشتن) شی. نام - نام ویژگی، ارزش - ارزش آن است. مقدار Xmldomattribute شی را باز می گرداند.</td> </tr><tr><td valign="top" width="35%"><b>repaCechild (NewChild، OldChild) Removechild (OldChild)</b> </td> <td valign="top" width="65%">جایگزینی هدف OldChild از لیست فعلی شرکت های تابعه در NewChild. از بین بردن شیء oldchild</td> </tr><tr><td valign="top" width="35%"><b>selectSingLende SelectSingLende (PatternString)</b> </td> <td valign="top" width="65%">شی XMLDomNodelist را که توسط الگوی جستجو یا گره اول انتخاب شده است، باز می گرداند</td> </tr><tr><td valign="top" width="35%"><b>transformnode (Styesheet) <br>transformnodetObject (سبک، خروجی، خروجی)</b> </td> <td valign="top" width="65%">یک جدول سبک را برای پشتیبانی از گره فعلی اختصاص می دهد و رشته را به نتیجه پردازش می رساند. یک مرجع به شی DomDocument به عنوان یک پارامتر انتقال می یابد، که در آن دستورالعمل های XSL واقع شده است.</td> </tr></tbody></table><br><h2>با استفاده از XML در کسب و کار.</h2> <p>برای یک تصویر واضح تر، یک توضیح ضروری است، و چرا همه اینها با آنچه که باید درک کنید، لازم است که چگونه کار می کند:</p> <p>هنگام ساخت یک سیستم B2B یا شرکت ERP شرکت، هنگام سازماندهی تبادل اطلاعات اسناد XML بین شرکت ها یا شاخه های PROM-I، یک سیستم اطلاعات اثبات شده اثبات شده بر اساس سرورهای وب موجود در پروتکل های HTTP استفاده می شود.</p> <p>از یک طرف، برنامه به عنوان یک مشتری عمل می کند، که در حالت پست، پرس و جو HTTP را مطرح می کند، از سوی دیگر، سرور وب در کنار آن درخواست پردازش شده و پاسخ است. اسناد XML به عنوان تبادل استفاده می شود.</p> <p>به عنوان مثال، در یک سیستم ساده شرکت ERP از برنامه حسابداری (حسابداری ACS)، لازم است یک درخواست خاص برای یک فاکتور ایجاد شود و آن را به یک شاخه ای که دارای انبار (ACS انبار) است، انتقال دهد. هنر تنظیم مشابهی از مشکل زمانی است که ایجاد یک B2B از سیستم، زمانی که یک شرکت درخواست دسترسی به محصولات (سفارش خرید برای خرید) از تامین کننده V.</p> <p>شرکت A و برنامه او به عنوان یک مشتری عمل می کند. انبار در خدمت تامین کننده در WHO دارای یک مجتمع BD انبار در SQL Server است. تبادل از طریق یک تامین کننده وب سرور شرکت انجام می شود.</p> <p>در زیر، الگوریتم مبادله معمولی زیر است:</p> <br>شکل 3 <ol><li><b>شرکت A.</b>آغاز می شود <b>فرآیند A.</b>(سفارش محصول)، که به عنوان یک مشتری وب عمل می کند.</li><li><b>فرآیند A.</b>یک سند XML (به عنوان مثال، یک فاکتور) را تولید می کند و آن را به عنوان یک پرس و جو پست HTTP به سرور تامین کننده وب انتقال می دهد. به عنوان یک URI - یک شناسه درخواست پردازش استفاده می شود. URI ممکن است برای هر نوع اسناد یا فردی برای هر نوع مشابه باشد. این همه به ساختار سرور B2B (وب) بستگی دارد.</li><li>وب سرور درخواست را تجزیه و تحلیل می کند و سرور را تولید می کند <b>فرآیند B.</b>با گذراندن یک سند XML به عنوان یک پارامتر. <br>فرآیند در وب سرور شروع و پردازش می شود یا به عنوان Page ASP، CGI (ISAPI) - برنامه یا جاوا سورک (برنامه سرور)</li><li><b>فرآیند B.</b>- یک درخواست را به سرور پایگاه داده SQL تولید می کند.</li><li>SQL Server عملیات لازم را در پایگاه داده انجام می دهد، پاسخ را تشکیل می دهد و آن را باز می گرداند. <b>فرآیند B.</b>.</li><li>در پاسخ از SQL Server <b>فرآیند B.</b> یک سند XML (پاسخ) را تولید می کند و به عنوان یک پاسخ به درخواست HTTP به برنامه مشتری اجازه می دهد.</li><li>علاوه بر این، بسته به وضعیت در طرف مشتری، یا یک پرس و جو جدید HTTP تشکیل شده است، یا جلسه به پایان می رسد.</li> </ol><h2>چند کلمه در مورد سازمان مدیریت سند.</h2> <p>حاکمیت کلی توسعه سیستم تبادل XML عبارت است از:</p><ul><li><b>اول</b>- توسعه مدار جریان اسناد الکترونیکی و ساختار آنها؛</li><li><b>دوم</b>- توسعه جداول توابع فرآیندهای (Subprocesses) I.E. چه تابع در رابطه با سند XML هر فرآیند را اجرا خواهد کرد.</li> </ul><p>هر سند XML، مانند یک سند HTML باید شامل یک هدر پیام (زندانی اطلاعات) و یک پیام پیام (برای پرس و جو این اطلاعات با برچسب گذاری برای پاسخ به درخواست). به منظور سند XML به درستی شکل گرفته است، لازم است که دو جزء آن از "هدر" و "درخواست" به برچسب های فریم، به عنوان مثال لازم است. دیدگاه سند استاندارد زیر ارائه شده است:</p> <p>عنوان (شکل 4)، در مقایسه با HTML سند، باید شامل انواع اطلاعات خدمات، از جمله اطلاعات مربوط به نوع سند انتقال و پردازش پردازش. پردازش اطلاعاتی سند دریافت شده است، I.E. بخش معنی دار توسط برچسب طراحی شده است. لازم به ذکر است که ساختار هدر باید برای همه انواع اسناد متحد باشد.</p> <p>برای فرایند در حال اجرا توسط سرور، الگوریتم پردازش ترجیحا (اما لازم نیست) برای ساخت به شرح زیر است:</p> <img src='https://i1.wp.com/codenet.ru/np-includes/upload/2005/01/05/128666.jpg' height="500" width="408" loading=lazy loading=lazy><br>شکل 6 <h2>برخی از لحظات اصلی هنگام ایجاد یک بخش مشتری</h2> <p>همانطور که قبلا توضیح داده شد، هنگام ایجاد یک سند XML از ارائه خود در قالب یک مدل DOM استفاده می کند. در زیر نمونه ای از متن متن دلفی برنامه هدر پیام XML است.</p> <b>روش.</b>tthread1.headercreate (فرستنده: togject)؛ <b>var</b> <span> // اعلامیه های کلاس برای ایجاد ضروری است</span> codoc: codomdocument؛ <span> // XMLDOMDocument Object</span> doc: domdocument؛ R: ixmldomelement؛ گره: ixmldomelement؛ // domtext txt: ixmldomtext؛ // domattribute attr: ixmldomattribute؛ <b>شروع.</b> <span> // ایجاد سند DOM</span> doc: \u003d codoc.create؛ doc.set_async (نادرست)؛ <span> // شروع اولیه DOM DOM</span> doc.loadXML (" <Header/>"); <span> // ایجاد domelement (برچسب<<b>فرستنده.</b>>) </span> گره: \u003d doc.createelement ("فرستنده")؛ <span> // ایجاد یک گره متن " <b>LLC "Typhoon"</b>" </span> TXT: \u003d doc.createtextnode ("LLC" Typhoon ")؛ <span> // اختصاص یک گره<<b>فرستنده.</b>\u003e ارزش</span> <span> // گره متن " <b>LLC "Typhoon"</b>" </span> node.appendchild (txt)؛ <span> // اضافه کردن یک مورد<<b>فرستنده.</b>\u003e در ریشه سند به عنوان یک شرکت تابعه</span> R.Appendchild (گره)؛ <span> <<b>از جانب.</b>> </span> گره: \u003d doc.createelement ("از")؛ TXT: \u003d doc.createtextnode ("http://tayfun.ru/xml/default.asp")؛ node.appendchild (txt)؛ R.Appendchild (گره)؛ <span> // عملیات مشابه برای برچسب<<b>به.</b>> </span> گره: \u003d doc.createelement ("به")؛ txt: \u003d doc.createtextnode ("http://irbis.ru")؛ node.appendchild (txt)؛ R.Appendchild (گره)؛ <span> // ایجاد domelement ()</span> گره: \u003d doc.createelement ("typedocument")؛ <span> // ایجاد یک گره xmldomattribute</span> ATT: \u003d doc.createattribute ("ID"، "ORDER")؛ <span> // <TypeDocument Id="Order"/> </span> node.appendchild (ATT)؛ R.Appendchild (گره)؛ <b>پایان؛</b> <p>لازم به ذکر است که اعلام Codoc: codomdocument و doc: متغیر DomDocument، و همچنین ایجاد روش ایجاد (doc: \u003d codoc.create؛) یک بار انجام می شود. اعلام متغیر در بخش توصیف متغیرهای جهانی است و نه در روش محلی، همانطور که برای دید در این مثال نشان داده شده است (I.E. یک متغیر جهانی از ماژول برنامه یک نوع DomDocument نوع).</p> <p>نتیجه برنامه فوق، هدر ایجاد شده است، در رابطه با مثال ما از سند XML: در شکل 5 نشان داده شده است.</p> <img src='https://i0.wp.com/codenet.ru/np-includes/upload/2005/01/05/128662.gif' height="116" width="298" loading=lazy loading=lazy><br>شکل 5 <p><img src='https://i0.wp.com/codenet.ru/np-includes/upload/2005/01/05/128664.gif' height="179" width="385" loading=lazy loading=lazy><br>شکل 6</p><p>مزیت اصلی انتقال اطلاعات در قالب اسناد XML این است که ممکن است یک پیام را با استفاده از ساختار مستقل جداول جداول در DBMS هر دو بر روی دریافت شده و در سمت انتقال ارسال کنید. با استفاده از مثال ما، اجازه دهید آن را به انتقال اطلاعات در مورد فاکتورهای شرکت A، از DBMS ساختار نشان داده شده در شکل 6</p> <p>برای ایجاد یک سند XML حاوی یک فاکتور، یک درخواست SQL اولیه (پرس و جو A) با اطلاعات مربوط به فاکتور:</p> <b>انتخاب کنید</b> * از invoice_general <b>جایی که.</b> invoicenum \u003d: num <b>انتخاب کنید</b>محصولات، قدم زدن، قیمت، hz_cod <b>از جانب.</b>کالا <b>جایی که.</b> invoicenum \u003d: num <span> //: num - پارامتر که شماره فاکتور را مشخص می کند.</span> <p>در زیر بخشی از برنامه تشکیل بدن سند XML است:</p> <b>روش.</b> tthread1.databodycreate (فرستنده: tobject)؛ <b>var</b> <span> // کلاس ها و xmldomocument</span> // codoc: codomdocument؛ <span> // باید جهانی باشد، برای کل ماژول.</span> // doc: domdocument؛ <span> // اعلام از اشیاء domelement</span> R: ixmldomelement؛ // domelement؛ گره، node2: ixmldomelement؛ node3، node4: ixmldomelement؛ // domtext txt: ixmldomtext؛ STR: رشته؛ <span> // invoicenumber: <b>عدد صحیح؛</b> - متغیر جهانی - // Masching 987654 // Querya، Queryb: <b>رشته؛</b> - متغیر جهانی، // حفظ درخواست به درخواست // Querya - درخواست و اطلاعات عمومی در مورد Infoice // Queryb - اطلاعات پرس و جو B در مورد کالاهای شرح داده شده در // infoice (متن را ببینید)</span> <b>شروع.</b> query.close؛ <span> // مشاهده متن "درخواست A"</span> query.text: \u003d Querya؛ <span> // اعدام درخواست</span> query.execsql؛ query.open؛ <span> // آدرس عنصر ریشه را دریافت کنید</span> r: \u003d doc.get_documentelement؛ node2: \u003d doc.createelement ("درخواست")؛ <span> // ایجاد domelement (برچسب)</span> گره: \u003d doc.createelement ("فاکتور")؛ <span> // اضافه کردن یک آیتم به ریشه</span> R.Appendchild (Node2)؛ <span> // اضافه کردن یک مورد در</span> node2 Appendchild (گره)؛ <span> // ایجاد domelement (برچسب)</span> node3: \u003d doc.createelement ("decurture")؛ <span> // اضافه کردن یک مورد در</span> گره Appendchild (Node3)؛ <span> // درخواست تجدید نظر به فیلد "Decurture"</span> str: \u003d query.fieldbynamename ("decurture"). Asspring؛ <span> // ایجاد یک گره متن \u003d مقدار فیلد</span><span> // ارزش تکالیف گره</span> <span> // گره متن، خط متغیر</span> node.appendchild (txt)؛ <span> // عملیات مشابه برای برچسب <Destination>, <DataSend>, // <DataDepurture>, <Currency> // <DestinationCompany> (فیلد DB "Consignee")</span> گره: \u003d doc.createelement ("مقصد")؛ <span> // نام زمینه پایگاه داده ممکن است با نام همزمان نباشد</span> str: \u003d query.fieldbyname ("consignee") .ASTRING؛ <span> // تگا، در این مزیت استفاده</span> txt: \u003d doc.createtextnode (str)؛ <span> // رابط DOM قبل از DBMS دارای پشتیبانی از رابط XML، // نوع اوراکل 8I یا MS SQL 2000</span> node.appendchild (txt)؛ ... <span> // تشکیل یک درخواست برای مشخصات کالا</span> <span> // درخواست دسترسی را بسته می کند</span> query.close؛ <span> // مشاهده متن "درخواست در"، اطلاعات. درباره محصولات</span> query.text: \u003d queryb؛ <span> // اختصاص مقادیر پارامتر</span> query.params.asinteger: \u003d invoicEnumber؛ <span> // اعدام درخواست</span> query2.execsql؛ <span> // باز کردن دسترسی به درخواست داده ها</span> query.open؛ <span> // ایجاد domelement (برچسب)</span> node3: \u003d doc.createlement ("imems")؛ <span> // اضافه کردن یک مورد در</span> گره Appendchild (Node3)؛ <span> // چرخه بر روی تمام درخواست ها</span> <b>در حالی که</b> <b>نه</b> eof.Query. <b>انجام دادن.</b> شروع node4: \u003d doc.createelement ("imem")؛ <span> // اضافه کردن یک مورد در</span> node3.appendchild (node4)؛ <span> // تولید داده برای برچسب</span> STR: \u003d query.fieldbyname ("قیمت"). Asspring؛ txt: \u003d doc.createtextnode (str)؛ node.appendchild (txt)؛ ... <span>// عملیات مشابه برای برچسب ها <HZ_Cod>, <Quality>, <GoodName> </span> <b>پایان؛</b> <b>پایان؛</b> <p>به عنوان یک نتیجه از این روش، متن زیر از سند XML تشکیل شده است:</p> <table width="100%"><tbody><tr><td align="middle"><br><img src='https://i2.wp.com/codenet.ru/np-includes/upload/2005/01/05/128661.gif' width="100%" loading=lazy loading=lazy></td> </tr></tbody></table><p>روش باز برای ایجاد پرس و جو استفاده می شود. <b>ixmlhttprequest</b>:</p> <b>روش.</b> Open (Const Bstrmethod، - روش type \u003d "post" bstrurl، - آدرس سرور Varasync URL، - حالت ارتباطی ناهمزمان / همزمان \u003d TRUE BSTRUSER، - نام کاربری برای احراز هویت BSTRPassword) - رمز عبور <h2>ایجاد یک بخش سرور از پردازش سند</h2> <p>همانطور که قبلا ذکر شد، پردازش درخواست HTTP را می توان یا برنامه های کاربردی CGI یا Servlets جاوا انجام داد. گزینه های ممکن برای نوشتن صفحات ASP. اما در این مورد، انتقال داده تنها توسط "دریافت" با استفاده از رشته پرس و جو امکان پذیر است. اگر چه، پردازش HTTP از درخواست Page ASP کارآمدتر از برنامه CGI است. با این حال، به نظر من، بدون هیچ گونه تفاوت، نحوه پردازش، و مهمتر از همه برای حل این سوال - نحوه ساخت یک برنامه پردازش، و نه با چه چیزی.</p> <p>اگر ما گزینه های تشکیل سند XML را از فصل قبلی بررسی کردیم، سپس وظیفه برنامه سرور مخالف اسناد XML است. در زیر بخشی از برنامه است که سند XML را تجزیه و تحلیل می کند:</p> <b>روش.</b>tthread1.dataparser (فرستنده: tobject)؛ <b>var</b> <span>// اعلام از اشیاء domelement</span> R، fnode: ixmldomelement؛ Str، نام فایل: رشته؛ PARM: رشته؛ <span>// اعلام Soklass و</span> CodocxML، Codocxsl، Codocresult: CodomDocument؛ <span>// XMLDOMDocument Object</span> XMLDOC، XSLDOC، نتیجه DOMDocument؛ <span>// httpstr: رشته؛ - یک متغیر جهانی حاوی رشته پرس و جو HTTP</span> <b>شروع.</b> xmldoc: \u003d codocxml.Create؛ xmldoc.loadxml (httpstr)؛ <span> // آدرس عنصر ریشه را دریافت کنید</span> r: \u003d doc.get_documentelement؛ <span> // به دست آوردن ارزش عنصر</span> fnode: \u003d r.selectorsinglenode ("// typedocument")؛ <span> // دریافت مقدار attribute id \u003d "سفارش"</span> نام فایل: \u003d fnode.getattibute ("ID")؛ <span> // و شکل دادن به نام فایل order.xsl</span> نام فایل: \u003d filename + ". XSL"؛ <span> // ایجاد یک سند XSLDOC</span> XSLDOC: \u003d CODOCXSL.CREATE؛ xsldoc.loadxml (filename)؛ <span> // ایجاد یک سند XMLDOC</span> نتیجه: \u003d codocresult.create؛ <span> // تنظیم حالت پردازش همزمان</span> رده doc.set_async (false)؛ <span> // نصب مجدد چک کردن</span> رده doc.ValidateonParase: \u003d درست؛ <span> // COLLAPSE XMLDOC توسط XSL TEMPLATE</span> XMLDOC.TransFormNOC، نتیجه DOC (XSLDOC، نتیجه DOC)؛ <span> // متغیر STR به مقدار متن اختصاص داده شده است</span> <span> // سند نتیجه</span> str: \u003d رده doc.text؛ <span> // عنصر جستجو</span> fnode: \u003d r.selectorsinglenode ("// invoicnumber")؛ <span> // و ارزش عنصر را دریافت کنید</span> Parm: \u003d fnode.text؛ <span> // درخواست دسترسی را بسته می کند</span> query.close؛ query.text: \u003d str؛ <span> // اختصاص مقدار پارامتر</span> query.params.ASTRING: \u003d PARM؛ <span> // اعدام درخواست</span> query.execsql؛ <b>پایان؛</b> <p>کل طیف وسیعی از تجزیه این است که قالب XSL را اعمال کنید، که برای هر نوع سند به صورت جداگانه تشکیل شده است. نتیجه تجزیه و تحلیل رشته پرس و جو SQL است. در نتیجه، اجرای رشته پرس و جو SQL تولید شده تغییرات لازم را در DBMS انجام خواهد داد.</p> <p>مزیت استفاده از تجزیه و تحلیل از طریق قالب نیز در این واقعیت است که برخی از انعطاف پذیری داده ها را تبدیل می کند و استقلال کامل عملیات الگوریتم از کد برنامه به دست می آید. در زیر متن TEMPLATE XSL است که برای پردازش نوع سند استفاده می شود.</p><p> <!-- файл Order.xsl --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <xsl:for-each select="//header"> مقادیر TABREG (از، به، typedoc، body) را وارد کنید (" <xsl:value-of select="from" />", "<xsl:value-of select="to" />", "<xsl:value-of select="TypeDocument/@id" />") </xsl:for-each> <xsl:for-each select="//item"> وارد کالا (invoicenumber، نام، قیمت، کیفیت، کیفیت) (": num"، " <xsl:value-of select="name" />", "<xsl:value-of select="price" />", "<xsl:value-of select="quality" /> ") </xsl:for-each> </xsl:template> </xsl:stylesheet> </p><p>توضیح مثال فوق، باید توجه داشت که استفاده از جفت برچسب ها و رسمی است، زیرا پس از تجزیه، حداقل یک گره باید در سند XML حاصل شود. روش نتیجه doc.text مقدار متنی به دست آمده در طی تجزیه و تحلیل نتایج XML DocumentDoc را تعیین می کند. در این مورد، ارزش این است که جفت برچسب ها قاب و I.E. ما یک درخواست SQL را تشکیل داده ایم.</p> <p>یکی دیگر از ویژگی های نوشتن برنامه باید امکان استفاده از پارامتر SQL را ذکر کرد <b>: num</b> با استفاده از پارامتر اجازه می دهد تا متن XSL را ساده کنید. تعریف مقدار عناصر مربوطه از گره های سند XML ابتدا تعیین نام گره مربوطه را تعیین می کند، به عنوان مثال:</p><h2>به طور خلاصه درباره XSL</h2> <p>اختصار XSL از زبان قالب بندی توسعه یافته - جدول قالب بندی جدول سبک (داده های XML) می آید. همانطور که از Header Language Language Extensible (XSL) روشن است (XSL) برای فرمت داده های XML استفاده می شود. با تعریف W3C XSL شامل دو بخش است:</p> <ul><li>XSLT - تغییر XSL. زبان مورد استفاده برای تبدیل یا فرمت (تبدیل) اسناد XML. بنابراین، با استفاده از XSLT، ما می توانیم بخش های مختلفی از فرم های مختلف داده ها و فرم های ارائه داده را دریافت کنیم.</li><li>عناصر قالب بندی این عناصر شامل تمام عناصر طراحی داده های تایپوگرافی، پس از پردازش آنها با استفاده از XSL پردازش می شوند. فقط برای تشکیل صفحات HTML استفاده می شود.</li> </ul><p>با استفاده از XSLT، می توانیم داده ها را از فایل XML مورد نیاز خود انتخاب کنیم و آنها را در فرم ترتیب دهیم تا کاربر را ارائه دهیم. به عنوان مثال، در مورد ما، داده های XML را به عنوان یک پرس و جو SQL تبدیل کردیم. برنامه کلاسیک XSL معمولا داده های قالب بندی به عنوان صفحات HTML یا نمایندگی نادر در قالب فایل های RTF است.</p> <p>فایل XSL Template (الگو) را توصیف می کند، بر اساس آن تبدیل داده XML انجام می شود. بازگشت به قالب های XSL، عناصر زیر را می توان در XSLT (دستورالعمل ها) اختصاص داد:</p> <table cellspacing="0" cellpadding="4" width="500" border="1"><tbody><tr><td valign="top" width="31%"> <b>دستورالعمل XSL</b> </td><th align="middle" width="69%"> <b>شرح</b> </th> </tr><tr><td>xSL: اعمال قالب</td> <td>دستورالعمل، نشان دهنده استفاده از ویژگی های مناسب قالب select \u003d "name template"</td> </tr><tr><td>xSL: ویژگی</td> <td>درخت ویژگی را ایجاد می کند و آن را به عنصر خروجی اضافه می کند، نام \u003d "attribute name" پارامتر، فضای نامی - URI در فضای نام (پیشوند نام فضای نام)</td> </tr><tr><td>xSL: Call-template</td> <td>باعث می شود یک قالب، نام ویژگی \u003d "URI در قالب"</td> </tr><tr><td>xSL: انتخاب کنید <br>xSL: زمانی که. <br>xSL: در غیر این صورت.</td> <td>ساخت یک انتخاب با شرایط XSL: هنگامی که expr \u003d "محاسبه بیان در اسکریپت"، <br>زبان \u003d "نام زبان" <br>تست \u003d "بیان محاسبه شده"</td> </tr><tr><td>xSL: نظر</td> <td>یک نظر در مورد سند خروجی تولید می کند</td> </tr><tr><td>xSL: کپی کنید <br>xSL: کپی-از</td> <td>گره فعلی را در منبع خروجی کپی می کند و یا قطعه سند را به گره وارد می کند که در آن select \u003d "نام گره منبع" را انتخاب می کند</td> </tr><tr><td>xSL: عنصر</td> <td>یک عنصر خروجی را با نام، نام ویژگی \u003d "نام عنصر"، namespace \u003d "uri مرجع به فضای نام" ایجاد می کند</td> </tr><tr><td>xSL: برای هر کدام</td> <td>دوباره اعمال قالب به تمام گره های لیست گره، ویژگی Attribute را انتخاب کنید لیستی از گره ها.</td> </tr><tr><td>xSL: اگر.</td> <td>بررسی شرایط توسط ویژگی آزمون به عنوان یک عبارت تنظیم می شود</td> </tr><tr><td>xSL: شامل</td> <td>شامل یک قالب خارجی، ویژگی href \u003d "مرجع URI"</td> </tr><tr><td>xSL: خروجی</td> <td>نتیجه خروجی را مشخص می کند، ویژگی روش ممکن است "XML"، "HTML" یا "متن" داشته باشد</td> </tr><tr><td>xSL: PARAM</td> <td>مقدار پارامتر را مشخص می کند، نام \u003d "نام پارامتر نام"، select \u003d "value"</td> </tr><tr><td>xSL: آموزش پردازش</td> <td>دستورالعمل ها را برای پردازش، نام ویژگی \u003d "دستورالعمل فرآیند نام" ایجاد می کند</td> </tr><tr><td>xSL: مرتب سازی بر.</td> <td>انواع گره ها، ویژگی ها را انتخاب کنید \u003d "node name"، نوع داده \u003d نوع داده ("text" | "شماره" | qname)، سفارش \u003d جهت مرتب سازی ("صعودی" | "نزولی")</td> </tr><tr><td>xSL: شیوه ای</td> <td>سند Template XSL را تعریف می کند، عنصر ریشه برای XSLT است</td> </tr><tr><td>xSL: الگو</td> <td>قالب XSL را مشخص می کند، نام \u003d "attrifix prefix URI به نام الگو"، match \u003d "توجه داشته باشید به گره که الگو اعمال می شود"</td> </tr><tr><td>xSL: متن</td> <td>ایجاد متن به جریان خروجی، غیر فعال کردن خروجی-خروجی-فرار \u003d "بله" یا "نه" ویژگی نشان می دهد توانایی تولید شخصیت های ESC</td> </tr><tr><td>xSL: ارزش</td> <td>ارزش گره انتخاب شده را به عنوان متن، انتخاب \u003d "اشارهگر به گره" مشخص می کند که از آن مقدار گرفته شده است</td> </tr><tr><td>xSL: متغیر</td> <td>مقدار مرزهای متغیر را مشخص می کند، نام attribute \u003d "نام متغیر"، select \u003d "محاسبه مقدار متغیر"</td> </tr><tr><td>xSL: با پارامتر</td> <td>پارامتر را به الگو اعمال می کند، نام Attribute \u003d "نام پارامتر"، Select \u003d Expression برای محاسبه زمینه فعلی، مقدار پیش فرض "."</td> </tr></tbody></table><h2>نتیجه</h2> <p>در نتیجه، لازم به ذکر است که استفاده از تجزیه کننده استاندارد XML <i>msxml.dll</i>این تنها ابزار تجزیه و ایجاد اسناد XML نیست. به عنوان مثال، برای ایجاد اسناد XML به طور موثر از اجزای استفاده کنید <b>tpageProduser</b>و <b>ttableproduser</b>. اما این مقاله تنها بر گستره و امکان استفاده از یک مدل DOM در عمل تاکید دارد.</p> <p>نویسنده برای بازخورد مربوط به رابطه موضوع، محتوای کلی، سبک ارائه، و همچنین تمام نظرات دیگر که به بهبود کیفیت نوشتن مجموعه ای از مقالات و انتشار کتاب هایی که پوشش می دهد، بسیار سپاسگزار خواهند بود موضوع عملی عملی استفاده از اسناد XML در تجارت الکترونیک. برای کسب اطلاعات بیشتر در مورد کاربرد کاربردی استفاده از اسناد الکترونیکی، می توانید از www.edocs.al.ru در وب سایت نویسنده یاد بگیرید، همچنین برنامه های متون و نمونه های منبع را برنامه ریزی کرده اید.</p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> <div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div> </div> <footer> <div class="td-block-row td-post-next-prev"> <div class="td-block-span6 td-post-prev-post"> <div class="td-post-next-prev-content"><span>مقاله قبلی</span><a href="https://obanracer.ru/fa/kurortnyi-pos-lok-kalifeya-halkidiki-opisanie-i-otzyv-kalifeya.html">روستای روستای کالیفای</a></div> </div> <!-- /next_post --> <div class="td-next-prev-separator"></div> <div class="td-block-span6 td-post-next-post"> <div class="td-post-next-prev-content"><span>مقاله بعدی</span><a href="https://obanracer.ru/fa/kallifeya-greciya-opisanie-krasivye-vidy-kallifei-gde-mozhno.html">Kallithea یونان توضیحات</a></div> <!-- /next_post --> </div> </div> <div class="td-author-name vcard author" style="display: none"><span class="fn"><a href="https://obanracer.ru/fa/author/iulia">یولیا</a></span></div> <span style="display: none;" itemprop="author" itemscope itemtype="https://schema.org/Person"><meta itemprop="name" content="Юлия"></span> <meta itemprop="datePublished" content="2016-05-16T15:47:37+00:00"> <meta itemprop="dateModified" content="2016-10-25T16:54:41+00:00"> <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="/other/kak-zavyazat-galstuk-foto-poshagovo.html" /><span style="display: none;" itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><span style="display: none;" itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="//obanracer.ru/wp-content/uploads/2017/01/logo-300x100.png"></span> <meta itemprop="name" content="Мой секрет"> </span> <meta itemprop="headline " content="Как завязать галстук пошагово фото"><span style="display: none;" itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="/wp-content/uploads/2016/05/1-19.jpg"><meta itemprop="width" content="640"><meta itemprop="height" content="450"></span> </footer> </article> <div class="td_block_wrap td_block_related_posts td_uid_3_5a236fb03c961_rand td_with_ajax_pagination td-pb-border-top td_block_template_1" data-td-block-uid="td_uid_3_5a236fb03c961" ><script>var block_td_uid_3_5a236fb03c961 = new tdBlock(); block_td_uid_3_5a236fb03c961.id = "td_uid_3_5a236fb03c961"; block_td_uid_3_5a236fb03c961.atts = '{ "limit":9,"sort":"","post_ids":"","tag_slug":"","autors_id":"","installed_post_types":"","category_id":"","category_ids":"","custom_title":"","custom_url":"","show_child_cat":"","sub_cat_ajax":"","ajax_pagination":"next_prev","header_color":"","header_text_color":"","ajax_pagination_infinite_stop":"","td_column_number":3,"td_ajax_preloading":"","td_ajax_filter_type":"td_custom_related","td_ajax_filter_ids":"","td_filter_default_txt":"\u0412\u0441\u0435","color_preset":"","border_top":"","class":"td_uid_3_5a236fb03c961_rand","el_class":"","offset":"","css":"","tdc_css":"","tdc_css_class":"td_uid_3_5a236fb03c961_rand","live_filter":"cur_post_same_categories","live_filter_cur_post_id":10046,"live_filter_cur_post_author":"694350","block_template_id":""} '; block_td_uid_3_5a236fb03c961.td_column_number = "3"; block_td_uid_3_5a236fb03c961.block_type = "td_block_related_posts"; block_td_uid_3_5a236fb03c961.post_count = "9"; block_td_uid_3_5a236fb03c961.found_posts = "26"; block_td_uid_3_5a236fb03c961.header_color = ""; block_td_uid_3_5a236fb03c961.ajax_pagination_infinite_stop = ""; block_td_uid_3_5a236fb03c961.max_num_pages = "3"; tdBlocksArray.push(block_td_uid_3_5a236fb03c961); </script><h4 class="td-related-title td-block-title"><a id="td_uid_4_5a236fb03e35d" class="td-related-left td-cur-simple-item" data-td_filter_value="" data-td_block_id="td_uid_3_5a236fb03c961" href="#">مقالات مشابه</a></h4><div id=td_uid_3_5a236fb03c961 class="td_block_inner"> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/kak-v-mainkrafte-zarabatyvat-dengi-sozdanie-kart-hosting.html" rel="bookmark" title="چطور؟"Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги"><img width="218" height="150" class="entry-thumb" src="/uploads/afcbce1b7e914af6ae122d25f02ce1cc.jpg" alt="چطور؟"Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги" title="چطور؟"Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/fa/category/windows-7/" class="td-post-category">ویندوز 7.</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/kak-v-mainkrafte-zarabatyvat-dengi-sozdanie-kart-hosting.html" rel="bookmark" title="چطور؟"Майнкрафте" зарабатывать деньги: создание карт, хостинг сервера и продажа ресурсов Как заработать в minecraft реальные деньги">نحوه پول در Minecraft: ایجاد کارت، میزبانی سرور و فروش منابع چگونه می توان پول را در پول واقعی پول نقد</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/kak-polzovatsya-skaipom-na-kompyutere-poshagovaya-instrukciya-kak-ustanovit.html" rel="bookmark" title="روش نصب"скайп" на телефон и пользоваться им"><img width="218" height="150" class="entry-thumb" src="/uploads/f3dcf86cee739b27674f98cb9a246126.jpg" alt="روش نصب"скайп" на телефон и пользоваться им" title="روش نصب"скайп" на телефон и пользоваться им"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/fa/category/monitors/" class="td-post-category">مانور</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/kak-polzovatsya-skaipom-na-kompyutere-poshagovaya-instrukciya-kak-ustanovit.html" rel="bookmark" title="روش نصب"скайп" на телефон и пользоваться им">نحوه نصب "اسکایپ" بر روی گوشی و استفاده از آن</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/chto-uchit-programmistu-obuchenie-programmirovaniyu-s-nulya-poshagovoe.html" rel="bookmark" title="برنامه نویسی یادگیری از خراش - راهنمای گام به گام برای مبتدیان"><img width="218" height="150" class="entry-thumb" src="/uploads/6dd3b3707e9f1aed620f6871d2d743b2.jpg" alt="برنامه نویسی یادگیری از خراش - راهنمای گام به گام برای مبتدیان" title="برنامه نویسی یادگیری از خراش - راهنمای گام به گام برای مبتدیان"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/fa/category/internet/" class="td-post-category">اینترنت</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/chto-uchit-programmistu-obuchenie-programmirovaniyu-s-nulya-poshagovoe.html" rel="bookmark" title="برنامه نویسی یادگیری از خراش - راهنمای گام به گام برای مبتدیان">برنامه نویسی یادگیری از خراش - راهنمای گام به گام برای مبتدیان</a></h3> </div> </div> </div> </div> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/kto-sozdal-pervyi-arifmometr-v-1672-godu-cifrovaya-melnica-xvii-veka.html" rel="bookmark" title="آسیاب دیجیتال قرن XVII"><img width="218" height="150" class="entry-thumb" src="/uploads/9ea1055fe470170f4295195302ca43f4.jpg" alt="آسیاب دیجیتال قرن XVII" title="آسیاب دیجیتال قرن XVII"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/fa/category/the-winchesters/" class="td-post-category">وینچستر</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/kto-sozdal-pervyi-arifmometr-v-1672-godu-cifrovaya-melnica-xvii-veka.html" rel="bookmark" title="آسیاب دیجیتال قرن XVII">آسیاب دیجیتال قرن XVII</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/otkryt-levoe-menyu-fudzheira-otkryt-levoe-menyu-fudzheira-pravila.html" rel="bookmark" title="منوی سمت چپ قوانین Fujairah را در امارات Fujaira باز کنید"><img width="218" height="150" class="entry-thumb" src="/uploads/db0aa0723ea5b33d175084cf050525c7.jpg" alt="منوی سمت چپ قوانین Fujairah را در امارات Fujaira باز کنید" title="منوی سمت چپ قوانین Fujairah را در امارات Fujaira باز کنید"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/fa/category/windows-7/" class="td-post-category">ویندوز 7.</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/otkryt-levoe-menyu-fudzheira-otkryt-levoe-menyu-fudzheira-pravila.html" rel="bookmark" title="منوی سمت چپ قوانین Fujairah را در امارات Fujaira باز کنید">منوی سمت چپ قوانین Fujairah را در امارات Fujaira باز کنید</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/otkryt-levoe-menyu-fudzheira-otkryt-levoe-menyu-fudzheira-priroda-i-mestnye.html" rel="bookmark" title="منوی سمت چپ Fujaira طبیعت و Ladmashafts محلی"><img width="218" height="150" class="entry-thumb" src="/uploads/76db616820a891735d379024af838a06.jpg" alt="منوی سمت چپ Fujaira طبیعت و Ladmashafts محلی" title="منوی سمت چپ Fujaira طبیعت و Ladmashafts محلی"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/fa/category/motherboard/" class="td-post-category">مادربرد</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/otkryt-levoe-menyu-fudzheira-otkryt-levoe-menyu-fudzheira-priroda-i-mestnye.html" rel="bookmark" title="منوی سمت چپ Fujaira طبیعت و Ladmashafts محلی">منوی سمت چپ Fujaira طبیعت و Ladmashafts محلی</a></h3> </div> </div> </div> </div> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/kak-zaregistrirovatsya-vkontakte-kak-sdelat-vtoruyu-stranicu.html" rel="bookmark" title="چگونه یک صفحه دوم Vkontakte را برای یک عدد ایجاد کنیم؟"><img width="218" height="150" class="entry-thumb" src="/uploads/52dbe0968199d05d0cb2d2d1b0a43d6f.jpg" alt="چگونه یک صفحه دوم Vkontakte را برای یک عدد ایجاد کنیم؟" title="چگونه یک صفحه دوم Vkontakte را برای یک عدد ایجاد کنیم؟"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/fa/category/security/" class="td-post-category">ایمنی</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/kak-zaregistrirovatsya-vkontakte-kak-sdelat-vtoruyu-stranicu.html" rel="bookmark" title="چگونه یک صفحه دوم Vkontakte را برای یک عدد ایجاد کنیم؟">چگونه یک صفحه دوم Vkontakte را برای یک عدد ایجاد کنیم؟</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/pochemu-hamachi-ne-podklyuchaetsya-k-seti-reshaem-problemu-podklyucheniya-hamachi-k.html" rel="bookmark" title="ما مشکل اتصال Hamachi را به مشکل آداپتور شبکه حل می کنیم"><img width="218" height="150" class="entry-thumb" src="/uploads/af7c1d6f7565d884e071b0d6e2174690.jpg" alt="ما مشکل اتصال Hamachi را به مشکل آداپتور شبکه حل می کنیم" title="ما مشکل اتصال Hamachi را به مشکل آداپتور شبکه حل می کنیم"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/fa/category/the-winchesters/" class="td-post-category">وینچستر</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/pochemu-hamachi-ne-podklyuchaetsya-k-seti-reshaem-problemu-podklyucheniya-hamachi-k.html" rel="bookmark" title="ما مشکل اتصال Hamachi را به مشکل آداپتور شبکه حل می کنیم">ما مشکل اتصال Hamachi را به مشکل آداپتور شبکه حل می کنیم</a></h3> </div> </div> </div> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td-meta-info-hide td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/prilozhenie-pohozhee-na-instagram-s-luchshie-programma-dlya-instagram-dlya.html" rel="bookmark" title="بهترین برنامه برای نمایش مشخصات عمومی برای ارسال و پردازش عکس"><img width="218" height="150" class="entry-thumb" src="/uploads/49727ad65ca4cc36067b8759af3f9ba8.jpg" alt="بهترین برنامه برای نمایش مشخصات عمومی برای ارسال و پردازش عکس" title="بهترین برنامه برای نمایش مشخصات عمومی برای ارسال و پردازش عکس"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/fa/category/security/" class="td-post-category">ایمنی</a> </div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/prilozhenie-pohozhee-na-instagram-s-luchshie-programma-dlya-instagram-dlya.html" rel="bookmark" title="بهترین برنامه برای نمایش مشخصات عمومی برای ارسال و پردازش عکس">بهترین برنامه برای نمایش مشخصات عمومی برای ارسال و پردازش عکس</a></h3> </div> </div> </div> </div></div></div> </div> </div> <div class="td-pb-span4 td-main-sidebar"> <div class="td-ss-main-sidebar"> <aside class="widget �lambda_169101"> <div style="margin:10px 0"> </div> </aside> <div class="td_block_wrap td_block_1 td_block_widget td_uid_2_5a23c04f0cdc0_rand td-pb-border-top td_block_template_1 td-column-1" data-td-block-uid="td_uid_2_5a23c04f0cdc0"> <div class="td-block-title-wrap"> <h4 class="block-title"><span class="td-pulldown-size">توصیه شده</span></h4> </div> <div id=td_uid_2_5a23c04f0cdc0 class="td_block_inner"> <div class="td-block-span12"> <div class="td_module_4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/krashit-mainkraft-1-5-2-reshenie-problem-v-tlauncher-lagi-i-vylety-vo.html" rel="bookmark" title="سقوط Minecraft 1.5 2. حل مشکلات در Tlauncher. عقب مانده و خروج در طول بازی"><img width="324" height="235" class="entry-thumb" src="/uploads/be518d19c81c51a36a10ec67569d2ab4.jpg" alt="سقوط Minecraft 1.5 2. حل مشکلات در Tlauncher. عقب مانده و خروج در طول بازی" title="سقوط Minecraft 1.5 2. حل مشکلات در Tlauncher. عقب مانده و خروج در طول بازی"/ loading=lazy loading=lazy></a></div> <a href="https://obanracer.ru/fa/category/multimedia/" class="td-post-category">چند رسانه ای</a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/krashit-mainkraft-1-5-2-reshenie-problem-v-tlauncher-lagi-i-vylety-vo.html" rel="bookmark" title="سقوط Minecraft 1.5 2. حل مشکلات در Tlauncher. عقب مانده و خروج در طول بازی">سقوط Minecraft 1.5 2. حل مشکلات در Tlauncher. عقب مانده و خروج در طول بازی</a></h3> <div class="td-module-meta-info"> </div> <div class="td-excerpt"> از زمان انتشار Minecraft، زمان زیادی گذشت. این بازی طرفداران خود را پیدا کرد که به طور منظم از گیم پلی لذت می برند. تو می توانی ...</div> </div> <!-- /next_post --> </div> <div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/panasonic-g6-tehnicheskie-harakteristiki-sistemnaya-kamera-panasonic-lumix-dmc-g6-chto-pod.html" rel="bookmark" title="پاناسونیک LUMIX DMC-G6 دوربین سیستم"><img width="100" height="70" class="entry-thumb" src="/uploads/7c2f764019a17704196c7c833be2a3aa.jpg" alt="پاناسونیک LUMIX DMC-G6 دوربین سیستم" title="پاناسونیک LUMIX DMC-G6 دوربین سیستم"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/panasonic-g6-tehnicheskie-harakteristiki-sistemnaya-kamera-panasonic-lumix-dmc-g6-chto-pod.html" rel="bookmark" title="پاناسونیک LUMIX DMC-G6 دوربین سیستم">پاناسونیک LUMIX DMC-G6 دوربین سیستم</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/fa/category/processors/" class="td-post-category">پردازنده ها</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/v-kakoi-programme-narisovat-kryshu-doma-luchshie-programmy-dlya-proektirovaniya.html" rel="bookmark" title="بهترین برنامه های طراحی برای خانه ها و اتاق ها"><img width="100" height="70" class="entry-thumb" src="/uploads/cafa05facb96903bc9477ef34665ecd1.jpg" alt="بهترین برنامه های طراحی برای خانه ها و اتاق ها" title="بهترین برنامه های طراحی برای خانه ها و اتاق ها"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/v-kakoi-programme-narisovat-kryshu-doma-luchshie-programmy-dlya-proektirovaniya.html" rel="bookmark" title="بهترین برنامه های طراحی برای خانه ها و اتاق ها">بهترین برنامه های طراحی برای خانه ها و اتاق ها</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/fa/category/windows-7/" class="td-post-category">ویندوز 7.</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/vyletaet-mainkraft-iz-za-java-vyletaet-mainkraft-chto-delat-minecraft-ne.html" rel="bookmark" title="سقوط Minecraft چه کاری باید انجام دهد؟"><img width="100" height="70" class="entry-thumb" src="/uploads/8d552799cceafe8b9066f31d0562c62f.jpg" alt="سقوط Minecraft چه کاری باید انجام دهد؟" title="سقوط Minecraft چه کاری باید انجام دهد؟"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/vyletaet-mainkraft-iz-za-java-vyletaet-mainkraft-chto-delat-minecraft-ne.html" rel="bookmark" title="سقوط Minecraft چه کاری باید انجام دهد؟">سقوط Minecraft چه کاری باید انجام دهد؟</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/fa/category/monitors/" class="td-post-category">مانور</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/prekrashchena-rabota-java-tm-platform-se-binary-chto-delat-prekrashchena-rabota-java-tm-platform-se.html" rel="bookmark" title="کار Java TM پلت فرم SE باینری متوقف شد - چه باید بکنید در مورد خطا رخ می دهد"><img width="100" height="70" class="entry-thumb" src="/uploads/e548d1d3c153b2eb65e8007e957ca6b8.jpg" alt="کار Java TM پلت فرم SE باینری متوقف شد - چه باید بکنید در مورد خطا رخ می دهد" title="کار Java TM پلت فرم SE باینری متوقف شد - چه باید بکنید در مورد خطا رخ می دهد"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/prekrashchena-rabota-java-tm-platform-se-binary-chto-delat-prekrashchena-rabota-java-tm-platform-se.html" rel="bookmark" title="کار Java TM پلت فرم SE باینری متوقف شد - چه باید بکنید در مورد خطا رخ می دهد">کار Java TM پلت فرم SE باینری متوقف شد - چه باید بکنید در مورد خطا رخ می دهد</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/fa/category/power-supply/" class="td-post-category">منابع تغذیه</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/perevod-direkcionnyh-uglov-v-rumby-onlain-zamknutyi-teodolitnyi-hod-obrabotka-i-metodika-rasscheta.html" rel="bookmark" title="حرکت تئودولیت بسته: پردازش و روش محاسبه مختصات"><img width="100" height="70" class="entry-thumb" src="/uploads/21aa23d49bb25b138edc583ce466e4f2.jpg" alt="حرکت تئودولیت بسته: پردازش و روش محاسبه مختصات" title="حرکت تئودولیت بسته: پردازش و روش محاسبه مختصات"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/perevod-direkcionnyh-uglov-v-rumby-onlain-zamknutyi-teodolitnyi-hod-obrabotka-i-metodika-rasscheta.html" rel="bookmark" title="حرکت تئودولیت بسته: پردازش و روش محاسبه مختصات">حرکت تئودولیت بسته: پردازش و روش محاسبه مختصات</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/fa/category/windows-8/" class="td-post-category">ویندوز 8.</a> </div> </div> </div> </div> <div class="td-block-span12"> <div class="td_module_6 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/printery-epson-kak-smenit-kartridzhi-na-printerah-zamena-obmen-i-zapravka.html" rel="bookmark" title="جایگزینی کارتریج مبادله و پر کردن مجدد"><img width="100" height="70" class="entry-thumb" src="/uploads/46fd0883101f3a03012229e5902eb502.jpg" alt="جایگزینی کارتریج مبادله و پر کردن مجدد" title="جایگزینی کارتریج مبادله و پر کردن مجدد"/ loading=lazy loading=lazy></a></div> <div class="item-details"> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/printery-epson-kak-smenit-kartridzhi-na-printerah-zamena-obmen-i-zapravka.html" rel="bookmark" title="جایگزینی کارتریج مبادله و پر کردن مجدد">جایگزینی کارتریج مبادله و پر کردن مجدد</a></h3> <div class="td-module-meta-info"> <a href="https://obanracer.ru/fa/category/windows-7/" class="td-post-category">ویندوز 7.</a> </div> </div> </div> </div> </div> </div> </div> <aside class="widget_text td_block_template_1 widget widget_custom_html"> <div class="textwidget custom-html-widget"> </div> </aside> </div> </div> </div> </div> </div> <div class="td-footer-wrapper td-container-wrap "> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span12"> </div> </div> <div class="td-pb-row"> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_11_5a23980e76adb_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_11_5a23980e76adb" > <div class="td-block-title-wrap"></div><div id=td_uid_11_5a23980e76adb class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/raznica-mezhdu-mikrokontrollerom-i-mikroprocessorom-pro-mikrokontrollery.html" rel="bookmark" title="درباره میکروکنترلرها برای مبتدیان - تاریخچه خلقت، انواع اصلی و تفاوت معماری FPGA"><img width="218" height="150" class="entry-thumb" src="/uploads/dd20b8f85d484712bb0399e8e0fc5b94.jpg" alt="درباره میکروکنترلرها برای مبتدیان - تاریخچه خلقت، انواع اصلی و تفاوت معماری FPGA" title="درباره میکروکنترلرها برای مبتدیان - تاریخچه خلقت، انواع اصلی و تفاوت معماری FPGA"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/raznica-mezhdu-mikrokontrollerom-i-mikroprocessorom-pro-mikrokontrollery.html" rel="bookmark" title="درباره میکروکنترلرها برای مبتدیان - تاریخچه خلقت، انواع اصلی و تفاوت معماری FPGA">درباره میکروکنترلرها برای مبتدیان - تاریخچه خلقت، انواع اصلی و تفاوت معماری FPGA</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/sozdanie-lichnogo-informacionnogo-prostranstva-uchitelya-lichnoe.html" rel="bookmark" title="فضای اطلاعات شخصی"><img width="218" height="150" class="entry-thumb" src="/uploads/cc2cf1bbe7714a272028a46c4f29c4db.jpg" alt="فضای اطلاعات شخصی" title="فضای اطلاعات شخصی"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/sozdanie-lichnogo-informacionnogo-prostranstva-uchitelya-lichnoe.html" rel="bookmark" title="فضای اطلاعات شخصی">فضای اطلاعات شخصی</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/analiz-besprovodnyh-setei-s-pomoshchyu-netspot-skanery-skrytyh-setei.html" rel="bookmark" title="تجزیه و تحلیل شبکه های بی سیم با استفاده از NetsPot"><img width="218" height="150" class="entry-thumb" src="/uploads/8b91d3f608b25500885eebdb1013012b.jpg" alt="تجزیه و تحلیل شبکه های بی سیم با استفاده از NetsPot" title="تجزیه و تحلیل شبکه های بی سیم با استفاده از NetsPot"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/analiz-besprovodnyh-setei-s-pomoshchyu-netspot-skanery-skrytyh-setei.html" rel="bookmark" title="تجزیه و تحلیل شبکه های بی سیم با استفاده از NetsPot">تجزیه و تحلیل شبکه های بی سیم با استفاده از NetsPot</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/telefon-s-dvumya-standartami-gsm-i-cdma-razlichiya-mezhdu-cdma-i-gsm.html" rel="bookmark" title="تفاوت های بین استانداردهای CDMA و GSM"><img width="218" height="150" class="entry-thumb" src="/uploads/cd232591d0cf8dd8a759886c5500efc4.jpg" alt="تفاوت های بین استانداردهای CDMA و GSM" title="تفاوت های بین استانداردهای CDMA و GSM"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/telefon-s-dvumya-standartami-gsm-i-cdma-razlichiya-mezhdu-cdma-i-gsm.html" rel="bookmark" title="تفاوت های بین استانداردهای CDMA و GSM">تفاوت های بین استانداردهای CDMA و GSM</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/trudnyi-vybor-smartfon-ili-planshet-v-chem-raznica-mezhdu-smartfonom-i.html" rel="bookmark" title="تفاوت بین گوشی های هوشمند و تبلت آندروید از تبلت چیست؟"><img width="218" height="150" class="entry-thumb" src="/uploads/49f84ccce7b49306a8b73f20627c79a1.jpg" alt="تفاوت بین گوشی های هوشمند و تبلت آندروید از تبلت چیست؟" title="تفاوت بین گوشی های هوشمند و تبلت آندروید از تبلت چیست؟"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/trudnyi-vybor-smartfon-ili-planshet-v-chem-raznica-mezhdu-smartfonom-i.html" rel="bookmark" title="تفاوت بین گوشی های هوشمند و تبلت آندروید از تبلت چیست؟">تفاوت بین گوشی های هوشمند و تبلت آندروید از تبلت چیست؟</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/email-generator-parolei-kak-sozdat-i-zapomnit-nad-zhnyi-parol-pochemu.html" rel="bookmark" title="چگونه برای ایجاد و به یاد آوردن رمز عبور قابل اعتماد"><img width="218" height="150" class="entry-thumb" src="/uploads/706eca5222f097994818b5387bed77d8.jpg" alt="چگونه برای ایجاد و به یاد آوردن رمز عبور قابل اعتماد" title="چگونه برای ایجاد و به یاد آوردن رمز عبور قابل اعتماد"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/email-generator-parolei-kak-sozdat-i-zapomnit-nad-zhnyi-parol-pochemu.html" rel="bookmark" title="چگونه برای ایجاد و به یاد آوردن رمز عبور قابل اعتماد">چگونه برای ایجاد و به یاد آوردن رمز عبور قابل اعتماد</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div> </div> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_12_5a23980e79990_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_12_5a23980e79990" > <div class="td-block-title-wrap"></div><div id=td_uid_12_5a23980e79990 class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/mozhno-li-otsledit-aifon-bez-simki-pochemu-ne-rabotaet-funkciya-naiti-iphone.html" rel="bookmark" title="چرا عملکرد "آیفون پیدا کردن" کار نمی کند؟"><img width="218" height="150" class="entry-thumb" src="/uploads/05b919e8672efb5d60c44b4baf0db500.jpg" alt="چرا عملکرد "آیفون پیدا کردن" کار نمی کند؟" title="چرا عملکرد "آیفون پیدا کردن" کار نمی کند؟"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/mozhno-li-otsledit-aifon-bez-simki-pochemu-ne-rabotaet-funkciya-naiti-iphone.html" rel="bookmark" title="چرا عملکرد "آیفون پیدا کردن" کار نمی کند؟">چرا عملکرد "آیفون پیدا کردن" کار نمی کند؟</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/pochemu-itools-ne-vidit-iphone-prichina-i-reshenie-kak-nastroit-i.html" rel="bookmark" title="نحوه راه اندازی و استفاده از برنامه ITOOLS: دستورالعمل های برنامه ITOOLS آیفون را نمی بینید"><img width="218" height="150" class="entry-thumb" src="/uploads/8946bedbcd2867ed43f3a32d130a8689.jpg" alt="نحوه راه اندازی و استفاده از برنامه ITOOLS: دستورالعمل های برنامه ITOOLS آیفون را نمی بینید" title="نحوه راه اندازی و استفاده از برنامه ITOOLS: دستورالعمل های برنامه ITOOLS آیفون را نمی بینید"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/pochemu-itools-ne-vidit-iphone-prichina-i-reshenie-kak-nastroit-i.html" rel="bookmark" title="نحوه راه اندازی و استفاده از برنامه ITOOLS: دستورالعمل های برنامه ITOOLS آیفون را نمی بینید">نحوه راه اندازی و استفاده از برنامه ITOOLS: دستورالعمل های برنامه ITOOLS آیفون را نمی بینید</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/perenos-nastroek-iphone-na-novyi-sposoby-perenosa-dannyh-s.html" rel="bookmark" title="روش های انتقال داده ها از یک آی فون به آیفون دیگر"><img width="218" height="150" class="entry-thumb" src="/uploads/50a0b5480336144be0f1d1ecdfa15a5b.jpg" alt="روش های انتقال داده ها از یک آی فون به آیفون دیگر" title="روش های انتقال داده ها از یک آی فون به آیفون دیگر"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/perenos-nastroek-iphone-na-novyi-sposoby-perenosa-dannyh-s.html" rel="bookmark" title="روش های انتقال داده ها از یک آی فون به آیفون دیگر">روش های انتقال داده ها از یک آی فون به آیفون دیگر</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/blokirovka-aktivacii-iphone-5-kak-snyat-parol-bystryi-obhod.html" rel="bookmark" title="فعال سازی سریع خزنده اپل"><img width="218" height="150" class="entry-thumb" src="/uploads/18838ec1f91e48279ac1947120c453e7.jpg" alt="فعال سازی سریع خزنده اپل" title="فعال سازی سریع خزنده اپل"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/blokirovka-aktivacii-iphone-5-kak-snyat-parol-bystryi-obhod.html" rel="bookmark" title="فعال سازی سریع خزنده اپل">فعال سازی سریع خزنده اپل</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/kak-ochistit-istoriyu-na-aipad-kak-ochistit-istoriyu-v-safari-na-iphone-ipad-i-mac-kak.html" rel="bookmark" title="نحوه تمیز کردن داستان ها در Safari در iPhone، iPad و Mac"><img width="218" height="150" class="entry-thumb" src="/uploads/c35843ede0fa4d8127b9d98e79b6ac3b.jpg" alt="نحوه تمیز کردن داستان ها در Safari در iPhone، iPad و Mac" title="نحوه تمیز کردن داستان ها در Safari در iPhone، iPad و Mac"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/kak-ochistit-istoriyu-na-aipad-kak-ochistit-istoriyu-v-safari-na-iphone-ipad-i-mac-kak.html" rel="bookmark" title="نحوه تمیز کردن داستان ها در Safari در iPhone، iPad و Mac">نحوه تمیز کردن داستان ها در Safari در iPhone، iPad و Mac</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/kak-otklyuchit-faily-cookie-chto-takoe-faily-cookie-i-kak-s-nimi-rabotat-mogut-li.html" rel="bookmark" title="کوکی ها و چگونگی کار با آنها چیست؟"><img width="218" height="150" class="entry-thumb" src="/uploads/cc75d1865f5980133f34840d2caf5ca4.jpg" alt="کوکی ها و چگونگی کار با آنها چیست؟" title="کوکی ها و چگونگی کار با آنها چیست؟"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/kak-otklyuchit-faily-cookie-chto-takoe-faily-cookie-i-kak-s-nimi-rabotat-mogut-li.html" rel="bookmark" title="کوکی ها و چگونگی کار با آنها چیست؟">کوکی ها و چگونگی کار با آنها چیست؟</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div> </div> <div class="td-pb-span4"> <div class="td_block_wrap td_block_15 td_block_widget td_uid_13_5a23980e7caa8_rand td-pb-border-top td_block_template_1 td-column-1 td_block_padding" data-td-block-uid="td_uid_13_5a23980e7caa8" > <div class="td-block-title-wrap"></div><div id=td_uid_13_5a23980e7caa8 class="td_block_inner td-column-1"><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/sboi-aktivacii-iphone-nedostupen-server-ili-chto-to-pohuzhe.html" rel="bookmark" title="شکست فعال سازی آیفون یک سرور غیر قابل دسترس یا چیزی بدتر است؟"><img width="218" height="150" class="entry-thumb" src="/uploads/6d97e44c5b70f1dee2f20e93cd34266c.jpg" alt="شکست فعال سازی آیفون یک سرور غیر قابل دسترس یا چیزی بدتر است؟" title="شکست فعال سازی آیفون یک سرور غیر قابل دسترس یا چیزی بدتر است؟"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/sboi-aktivacii-iphone-nedostupen-server-ili-chto-to-pohuzhe.html" rel="bookmark" title="شکست فعال سازی آیفون یک سرور غیر قابل دسترس یا چیزی بدتر است؟">شکست فعال سازی آیفون یک سرور غیر قابل دسترس یا چیزی بدتر است؟</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/lineiki-napravlyayushchie-i-setka-v-fotoshope-osnovy-photoshop-ispolzovanie.html" rel="bookmark" title="اصول فتوشاپ: با استفاده از مش (شبکه) در فتوشاپ چگونه یک شبکه را در فتوشاپ CS6 ایجاد کنید"><img width="218" height="150" class="entry-thumb" src="/uploads/f26b20924c99d93d3ab44ec683de8053.jpg" alt="اصول فتوشاپ: با استفاده از مش (شبکه) در فتوشاپ چگونه یک شبکه را در فتوشاپ CS6 ایجاد کنید" title="اصول فتوشاپ: با استفاده از مش (شبکه) در فتوشاپ چگونه یک شبکه را در فتوشاپ CS6 ایجاد کنید"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/lineiki-napravlyayushchie-i-setka-v-fotoshope-osnovy-photoshop-ispolzovanie.html" rel="bookmark" title="اصول فتوشاپ: با استفاده از مش (شبکه) در فتوشاپ چگونه یک شبکه را در فتوشاپ CS6 ایجاد کنید">اصول فتوشاپ: با استفاده از مش (شبکه) در فتوشاپ چگونه یک شبکه را در فتوشاپ CS6 ایجاد کنید</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/mediateka-icloud-ne-vklyuchaetsya-chto-takoe-mediateka-icloud-kak.html" rel="bookmark" title="کتابخانه رسانه ای iCloud چیست؟"><img width="218" height="150" class="entry-thumb" src="/uploads/c4a9a21f6487cdd84cf6e87d5a030919.jpg" alt="کتابخانه رسانه ای iCloud چیست؟" title="کتابخانه رسانه ای iCloud چیست؟"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/mediateka-icloud-ne-vklyuchaetsya-chto-takoe-mediateka-icloud-kak.html" rel="bookmark" title="کتابخانه رسانه ای iCloud چیست؟">کتابخانه رسانه ای iCloud چیست؟</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/povorachivaetsya-ekran-iphone-5s-ne-povorachivaetsya-ekran-iphone-chto.html" rel="bookmark" title="صفحه نمایش آیفون چرخانده نمی شود، چه باید بکنید؟"><img width="218" height="150" class="entry-thumb" src="/uploads/2a6a73cd892c552df6a9069b3cd6dff5.jpg" alt="صفحه نمایش آیفون چرخانده نمی شود، چه باید بکنید؟" title="صفحه نمایش آیفون چرخانده نمی شود، چه باید بکنید؟"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/povorachivaetsya-ekran-iphone-5s-ne-povorachivaetsya-ekran-iphone-chto.html" rel="bookmark" title="صفحه نمایش آیفون چرخانده نمی شود، چه باید بکنید؟">صفحه نمایش آیفون چرخانده نمی شود، چه باید بکنید؟</a></h3> </div> </div> </div><div class="td-cust-row"> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/kak-zaryazhat-nesertificirovannym-kabelem-vazhno-dannyi-kabel-ili.html" rel="bookmark" title="مهم این کابل یا لوازم جانبی گواهی نشده یا پشتیبانی نمی شود."><img width="218" height="150" class="entry-thumb" src="/uploads/9fcf7a35719c3615538760373497465f.jpg" alt="مهم این کابل یا لوازم جانبی گواهی نشده یا پشتیبانی نمی شود." title="مهم این کابل یا لوازم جانبی گواهی نشده یا پشتیبانی نمی شود."/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/kak-zaryazhat-nesertificirovannym-kabelem-vazhno-dannyi-kabel-ili.html" rel="bookmark" title="مهم این کابل یا لوازم جانبی گواهی نشده یا پشتیبانی نمی شود.">مهم این کابل یا لوازم جانبی گواهی نشده یا پشتیبانی نمی شود.</a></h3> </div> </div> <div class="td-block-span12"> <div class="td_module_mx4 td_module_wrap td-animation-stack td-meta-info-hide"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://obanracer.ru/fa/postoyannyi-poisk-seti-iphone-5s-chto-delat-aifon-ne-lovit-set-sbroste.html" rel="bookmark" title="جستجوی ثابت برای شبکه آیفون 5S چه باید بکنید"><img width="218" height="150" class="entry-thumb" src="/uploads/ea08d4d9468475fc8f84fc457468a393.jpg" alt="جستجوی ثابت برای شبکه آیفون 5S چه باید بکنید" title="جستجوی ثابت برای شبکه آیفون 5S چه باید بکنید"/ loading=lazy loading=lazy></a></div> <a href="" class="td-post-category"></a> </div> <h3 class="entry-title td-module-title"><a href="https://obanracer.ru/fa/postoyannyi-poisk-seti-iphone-5s-chto-delat-aifon-ne-lovit-set-sbroste.html" rel="bookmark" title="جستجوی ثابت برای شبکه آیفون 5S چه باید بکنید">جستجوی ثابت برای شبکه آیفون 5S چه باید بکنید</a></h3> </div> </div> </div></div></div> <div class="clearfix"></div><aside class="td_block_template_1 widget widget_text"> <div class="textwidget"> </div> </aside><aside class="td_block_template_1 widget widget_text"> <div class="textwidget"> </div> </aside> </div> </div> </div> </div> <div class="td-sub-footer-container td-container-wrap "> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span td-sub-footer-menu"> </div> <div class="td-pb-span td-sub-footer-copy"> کپی رایت 2021 - تعمیر کامپیوترها و لپ تاپ ها. کارت های ویدئویی، هارد دیسک، اینترنت، مانیتور.</div> </div> </div> </div> </div> <style type="text/css" media="screen"> /* custom css theme panel */ .td-post-header .entry-title { font-weight: normal !important; } h1.entry-title { font-weight: normal !important; border-bottom:#c44c4c 2px dotted; } h1.entry-title:before { content: "\f184"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .sf-menu ul .td-menu-item > a:hover, .sf-menu ul .sfHover > a, .sf-menu ul .current-menu-ancestor > a, .sf-menu ul .current-category-ancestor > a, .sf-menu ul .current-menu-item > a { color: #edf3f7; } .td-post-content h2 { border-bottom:#c44c4c 2px dotted;} .td-post-content h2:before { content: "\f184"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-post-content h3 { border-bottom:#c44c4c 2px dotted;} .td-post-content h3:before { content: "\f103"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .category-my .td-page-title { color:#c44c4c; font-weight: 400; font-size: 36px; } .post header .entry-title { line-height: 40px; } .td-category-description h2, .td-category-description h3 { color:#c44c4c;} .td-category-description h2 { border-bottom:#c44c4c 2px solid;} .td-category-description h2:before { content: "\f055"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-category-description h3 { border-bottom:#c44c4c 2px solid;} .td-category-description h3:before { content: "\f103"; font-family: "FontAwesome"; margin-right:10px; color:#c44c4c; } .td-category-description ol, .td-category-description ul { margin-top:20px !important; margin-bottom:20px !important;} .td-category-description ul, .td-post-content ul { padding:0; margin:0; list-style:none; clear:both;} .td-category-description ul li, .td-post-content ul li { padding:0 0 0 15px; margin:0 0 10px 35px; position:relative;} .td-category-description ul li:before, .td-post-content ul li:before { content: "\f192"; font-family: "FontAwesome"; color:#c44c4c; position:absolute; left:-10px;} .td-category-description ol, .td-post-content ol { padding:0; margin:0 0 0 5px; list-style:none; counter-reset: lipoint; clear:both;} .td-category-description ol li, .td-post-content ol li { padding:0 0 0 15px; margin:0 0 10px 35px; position:relative;} .td-category-description ol li:before, .td-post-content ol li:before { content: counter(lipoint); counter-increment: lipoint; color:#fff; position:absolute; left:-16px; background:#c44c4c; width:20px; height:20px; line-height:20px; text-align:center; -webkit-border-radius: 20px;border-radius: 20px; font-size:12px; top:3px;} .toc_list li:before { display:none} .td-header-style-9 .td-header-menu-wrap-full { /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#c44c4c+0,c10000+100 */ background: #c44c4c; /* Old browsers */ background: -moz-linear-gradient(top, #c44c4c 0%, #c10000 100%); /* FF3.6-15 */ background: -webkit-linear-gradient(top, #c44c4c 0%,#c10000 100%); /* Chrome10-25,Safari5.1-6 */ background: linear-gradient(to bottom, #c44c4c 0%,#c10000 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c44c4c', endColorstr='#c10000',GradientType=0 ); /* IE6-9 */ } .sf-menu > li > a { color: #fff; } .td-header-style-9 .header-search-wrap .td-icon-search { color: #fff; } .td-affix a { color:#000 !important;} </style> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "smooth_scroll":"1"} ; /* ]]> */ </script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/table-of-contents-plus/front.min.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/wp-postratings/js/postratings-js.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/themes/Newspaper/js/tagdiv_theme.js'></script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js'></script> <script type='text/javascript'> /* <![CDATA[ */ var boxzilla_options = { "testMode":"","boxes":[]} ; /* ]]> */ </script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/boxzilla/assets/js/script.min.js'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/client/js/prod/lib.core.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/client/js/prod/lib.view.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/themes/baseline/js/prod/client.js'></script> <script type='text/javascript' src='/assets/client1.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/template-tags/item/js/prod/tag.item.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/template-tags/ui/js/prod/tag.ui.js'></script> <script type='text/javascript' src='https://obanracer.ru/wp-content/plugins/simple-lightbox/content-handlers/image/js/prod/handler.image.js'></script> <script> (function(){ var html_jquery_obj = jQuery('html'); if (html_jquery_obj.length && (html_jquery_obj.is('.ie8') || html_jquery_obj.is('.ie9'))) { var path = '/wp-content/themes/Newspaper/style.css'; jQuery.get(path, function(data) { var str_split_separator = '#td_css_split_separator'; var arr_splits = data.split(str_split_separator); var arr_length = arr_splits.length; if (arr_length > 1) { var dir_path = '/wp-content/themes/Newspaper'; var splited_css = ''; for (var i = 0; i < arr_length; i++) { if (i > 0) { arr_splits[i] = str_split_separator + ' ' + arr_splits[i]; } //jQuery('head').append('<style>' + arr_splits[i] + '</style>'); var formated_str = arr_splits[i].replace(/\surl\(\'(?!data\:)/gi, function regex_function(str) { return ' url(\'' + dir_path + '/' + str.replace(/url\(\'/gi, '').replace(/^\s+|\s+$/gm,''); } ); splited_css += "<style>" + formated_str + "</style>"; } var td_theme_css = jQuery('link#td-theme-css'); if (td_theme_css.length) { td_theme_css.after(splited_css); } } } ); } } )(); </script> </body> </html>