نحوه باز کردن یک سند XML - ویژگی های کار با فایل های XML. کار با XML در برنامه های NET XML چیست

صفحه اصلی / ویندوز 7

احتمالاً نام XML را شنیده اید و دلایل زیادی برای استفاده از آن در سازمان خود می دانید. اما واقعا XML چیست؟ این مقاله توضیح می دهد که XML چیست و چگونه کار می کند.

در این مقاله

نشانه گذاری ها، نشانه گذاری ها و برچسب ها

برای درک XML، به یاد داشته باشید که چگونه می توانید داده ها را برچسب گذاری کنید. اسناد و مدارک توسط مردم در طی قرن‌های متمادی ایجاد شده‌اند و در طول آن زمان مردم روی آنها یادداشت‌برداری می‌کنند. به عنوان مثال، معلمان اغلب در مورد کار دانش‌آموزان یادداشت می‌کنند و نیاز به جابه‌جایی پاراگراف‌ها، واضح‌تر کردن جمله یا تصحیح آن را نشان می‌دهند. اشتباهات املاییو غیره با علامت گذاری یک سند می توانید ساختار، معنی و ظاهراطلاعات اگر تا به حال از Hotfixe ها استفاده کرده اید مایکروسافت آفیس Word، سپس با فرم نشانه گذاری کامپیوتری آشنا می شوید.

در جهان فناوری اطلاعاتاصطلاح "علامت گذاری" به اصطلاح "علامت گذاری" تبدیل شده است. نشانه گذاری از کدهایی به نام تگ (یا گاهی اوقات توکن) برای تعریف ساختار، ظاهر بصری و - در مورد XML - معنای داده ها استفاده می کند.

متن این مقاله در فرمت HTMLاست مثال خوبکاربرد نشانه گذاری کامپیوتری اگر در مایکروسافت اینترنت اکسپلورراین صفحه را کلیک کنید کلیک راست کنیدماوس را انتخاب کرده و دستور را انتخاب کنید مشاهده کد HTML، متن قابل خواندن و تگ های HTML مانند را خواهید دید

و

. در اسناد HTML و XML، برچسب ها به راحتی قابل تشخیص هستند زیرا در براکت های زاویه ای محصور شده اند. در متن منبع این مقاله، تگ های HTML عملکردهای زیادی را انجام می دهند، مانند تعریف ابتدا و انتهای هر پاراگراف (

...

) و محل نقشه ها.

ویژگی های XML

اسناد HTML و XML حاوی داده‌هایی هستند که در برچسب‌ها محصور شده‌اند، اما شباهت‌های این دو زبان در اینجا به پایان می‌رسد. در قالب تگ های HTMLتعیین طراحی داده ها - محل سرفصل ها، ابتدای یک پاراگراف و غیره. در قالب XML، برچسب ها ساختار و معنای داده ها را تعیین می کنند - چیست.

با توصیف ساختار و معنای داده ها، استفاده مجدد از آن به روش های مختلف امکان پذیر می شود. به عنوان مثال، اگر بلوکی از داده های فروش دارید که در آن هر عنصر به وضوح تعریف شده است، می توانید فقط عناصر لازم را در گزارش فروش بارگذاری کنید و سایر داده ها را به پایگاه داده حسابداری منتقل کنید. به عبارت دیگر، شما می توانید از یک سیستم برای تولید و برچسب گذاری داده ها در قالب XML استفاده کنید و سپس آن داده ها را در هر سیستم دیگری، بدون توجه به پلت فرم مشتری یا پردازش کنید. سیستم عامل. این سازگاری XML را به یکی از محبوب ترین فناوری های تبادل داده تبدیل می کند.

لطفا در هنگام کار به موارد زیر توجه کنید:

    HTML را نمی توان به جای XML استفاده کرد. با این حال، داده های XML را می توان در تگ های HTML محصور کرد و در صفحات وب نمایش داد.

    قابلیت های HTML محدود به مجموعه ای از تگ های از پیش تعریف شده است که برای همه کاربران مشترک است.

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

    ایزی سیامی 6 بله نه Izz138bod کالین ویلکاکس

همانطور که می بینید، تگ های XML مشخص می کنند که چه داده هایی را مشاهده می کنید. به عنوان مثال، واضح است که داده ها در مورد یک گربه هستند و شما به راحتی می توانید نام، سن و غیره آن را تعیین کنید. زیرا می توانید برچسب هایی ایجاد کنید که تقریباً هر ساختار داده ای را تعریف می کند، XML قابل توسعه است.

اما تگ های این مثال را با تگ های موجود در فایل HTML اشتباه نگیرید. به عنوان مثال، اگر متن XML بالا در یک فایل HTML جایگذاری شود و در یک مرورگر باز شود، نتایج به صورت زیر خواهد بود:

Izzy Siamese 6 بله خیر Izz138bod Colin Wilcox

مرورگر وب تگ های XML را نادیده می گیرد و فقط داده ها را نمایش می دهد.

داده های خوب شکل گرفته

احتمالاً شنیده اید که شخصی در IT در مورد یک فایل XML "خوب شکل گرفته" صحبت می کند. یک فایل XML که به خوبی شکل گرفته باشد باید از قوانین بسیار دقیق پیروی کند. اگر از این قوانین پیروی نکند، XML کار نمی کند. به عنوان مثال، در مثال قبلی، هر تگ بازکننده دارای یک تگ بسته شدن مربوطه است، بنابراین این مثال از یکی از قوانین یک فایل XML خوش فرم پیروی می کند. اگر یک برچسب را از یک فایل حذف کنید و سعی کنید آن را در یکی از برنامه های آفیس باز کنید، یک پیغام خطا ظاهر می شود و استفاده از چنین فایلی غیرممکن خواهد بود.

شما نیازی به دانستن قوانین ایجاد یک فایل XML خوش فرم ندارید (اگرچه درک آنها دشوار نیست)، اما به یاد داشته باشید که فقط داده های XML به خوبی شکل گرفته می توانند در برنامه ها و سیستم های دیگر استفاده شوند. اگر فایل XML باز نمی شود، احتمالاً بد شکل است.

XML مستقل از پلتفرم است، به این معنی که هر برنامه طراحی شده برای استفاده از XML می تواند داده های XML را بدون در نظر گرفتن سخت افزار یا سیستم عامل بخواند و پردازش کند. به عنوان مثال، اگر تگ های XML مناسب را اعمال کنید، می توانید از یک برنامه دسکتاپ برای باز کردن و پردازش داده های دریافتی از رایانه اصلی استفاده کنید. و صرف نظر از اینکه چه کسی داده های XML را ایجاد کرده است، داده ها را می توان در انواع برنامه های Office دستکاری کرد. XML به دلیل سازگاری خود به یکی از محبوب ترین فناوری ها برای تبادل داده بین پایگاه های داده و رایانه های کاربر تبدیل شده است.

علاوه بر داده‌های برچسب‌گذاری شده خوب، سیستم‌های XML معمولاً از دو جزء اضافی استفاده می‌کنند: طرحواره‌ها و تبدیل‌ها. بخش های زیر نحوه کار آنها را توضیح می دهد.

طرح ها

از اصطلاح "طرح" نترسید. طرحواره به سادگی یک فایل XML است که حاوی قوانینی برای محتویات فایل داده XML است. فایل های طرحواره معمولا پسوند XSD دارند، در حالی که فایل های داده XML از پسوند XML استفاده می کنند.

طرحواره ها به برنامه ها اجازه می دهند تا داده ها را تأیید کنند. آنها ساختار داده ها را تشکیل می دهند و اطمینان می دهند که برای سازنده و سایر افراد قابل درک است. به عنوان مثال، اگر کاربر داده های نامعتبر، مانند متن در فیلد تاریخ را وارد کند، ممکن است برنامه از کاربر بخواهد که آن را تصحیح کند. اگر داده های موجود در یک فایل XML با قوانین موجود در طرح مطابقت دارد، می توانید از هر برنامه ای که XML را فعال کرده است برای خواندن، تفسیر و پردازش آن استفاده کنید. به عنوان مثال، همانطور که در تصویر زیر نشان داده شده است، اکسل می تواند داده ها را تأیید کند برای انطباق با طرح CAT.

مدارها می توانند پیچیده باشند و این مقاله نمی تواند نحوه ایجاد آنها را توضیح دهد. (همچنین، احتمالاً افراد فناوری اطلاعات در سازمان شما وجود دارند که می دانند چگونه این کار را انجام دهند.) با این حال، دانستن اینکه نمودارها چگونه هستند مفید است. نمودار زیر قوانین مجموعه ای از برچسب ها را تعریف می کند ... :

اگر مثال واضح نیست نگران نباشید. فقط به موارد زیر توجه کنید:

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

    اعلان ها ابزار قدرتمندی برای دستکاری ساختار داده ها هستند. مثلا یک تبلیغ به این معنی است که برچسب هایی مانند و ، باید به ترتیب بالا عمل کند. تبلیغات همچنین می توانند انواع ورودی های کاربر را تأیید کنند. به عنوان مثال، مدار فوق به یک ورودی عدد صحیح مثبت برای سن گربه و مقادیر بولی (TRUE یا FALSE) برای تگ های ALTERED و DECLAWED نیاز دارد.

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

تحولات

همانطور که در بالا توضیح داده شد، XML همچنین امکان استفاده کارآمد و استفاده مجدد از داده ها را فراهم می کند. مکانیسم استفاده مجدد از داده ها تبدیل XSLT (یا به سادگی تبدیل) نامیده می شود.

شما (یا بخش فناوری اطلاعات شما) همچنین می توانید از تبدیل ها برای تبادل داده بین سیستم های پشتیبان مانند پایگاه های داده استفاده کنید. بیایید فرض کنیم که پایگاه داده A داده های فروش را در جدولی ذخیره می کند که برای بخش فروش مفید است. پایگاه داده B داده های درآمد و هزینه را در جدولی که به طور خاص برای حسابداری طراحی شده است ذخیره می کند. پایگاه داده B می تواند از یک تبدیل برای گرفتن داده ها از پایگاه A و قرار دادن آن در جداول مناسب استفاده کند.

ترکیبی از فایل داده، طرحواره و تبدیل، سیستم اصلی XML را تشکیل می دهد. شکل زیر عملکرد چنین سیستم هایی را نشان می دهد. فایل داده بر اساس قوانین طرحواره بررسی می شود و سپس به هر روش مناسب برای تبدیل ارسال می شود. در این حالت، تبدیل داده ها را در یک جدول در یک صفحه وب قرار می دهد.

مثال زیر تبدیلی را نشان می دهد که داده ها را بارگذاری می کند در یک جدول در یک صفحه وب هدف مثال توضیح چگونگی ایجاد تبدیل نیست، بلکه نشان دادن یکی از اشکالی است که می توانند داشته باشند.

نام نژاد سن تغییر یافته است کلاف شده مجوز مالک

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

مایکروسافت و تعداد فزاینده‌ای از شرکت‌های دیگر در حال ایجاد تغییرات برای اهداف مختلف هستند و استفاده از XML را راحت‌تر می‌کنند. در آینده، احتمالاً می‌توانید تبدیلی را که متناسب با نیازهای شما باشد با سفارشی‌سازی کمی یا بدون سفارشی‌سازی اضافی دانلود کنید. این بدان معناست که با گذشت زمان، استفاده از XML کمتر و ارزان تر می شود.

XML در سیستم مایکروسافت آفیس

نسخه های حرفه ای آفیس پشتیبانی پیشرفته XML را ارائه می دهند. با شروع سیستم Microsoft Office 2007، مایکروسافت آفیس از فرمت های فایل مبتنی بر XML مانند DOCX، XLSX و PPTX استفاده می کند. از آنجایی که XML داده ها را در قالب متنی به جای یک فرمت باینری اختصاصی ذخیره می کند، مشتریان می توانند طرحواره های خود را تعریف کنند و از داده های شما به روش های مختلف بدون نیاز به پرداخت حق امتیاز استفاده کنند. برای اطلاعات بیشتر در مورد فرمت های جدید، به باز کردن فرمت های XML و پسوندهای نام فایل مراجعه کنید. در زیر سایر مزایای آن آورده شده است.

همه اینها عالی است، اما اگر داده های XML بدون طرحواره داشته باشید، چه؟ بستگی به چی داره برنامه آفیسشما استفاده می کنید. به عنوان مثال، وقتی یک فایل XML را بدون طرحواره در اکسل باز می‌کنید، فرض می‌کند که طرحواره وجود دارد و به شما امکان می‌دهد داده‌ها را در یک جدول XML بارگذاری کنید. می‌توانید از فهرست‌ها و جداول XML برای مرتب‌سازی، فیلتر کردن و محاسبه داده‌ها استفاده کنید.

ویژگی های XML را در آفیس فعال کنید

به طور پیش فرض، تب Developer قابل مشاهده نیست. برای استفاده از دستورات XML در آفیس باید به نوار اضافه شود.

مقاله قبلی مفاهیم کلی در مورد XML را شرح داد. در این مقاله نحوه انجام اقدامات اساسی مربوط به تغییر، افزودن، جستجو در یک فایل XML را یاد خواهیم گرفت.

فایل XML که برای مثال استفاده می شود.

مزدا 2007 BMW 2009

xml dom

در در حال حاضر، فایل ما شامل ساختار زیر است:

رابطه بین گره ها در XML DOM، نکات اصلی:

1. هر گره در درخت DOM یک ParentNode والد دارد. در مثال ما، گاراژ والد هر دو عنصر خودرو است، و هر دو عنصر خودرو، به نوبه خود، والدین عناصر مدل و سال هستند.

چگونه المنت والد خودرو xml را بدست آوریم؟

Console.WriteLine(elmRoot["car"].ParentNode.Name); //نتیجه: گاراژ

2. والدین می توانند ChildNodes فرزندان داشته باشند. به عنوان مثال، برای گره گاراژ، کودکان هر دو عنصر ماشین هستند. عناصر خودرو نیز دارای مدل و سال کودک هستند.

ChildNodes، مجموعه ای است که تمام عناصر xml را ذخیره می کند تا به عنصر مورد نظر دسترسی داشته باشید، باید شاخص آن را مشخص کنید. (شاخص همیشه از صفر شروع می شود!)

به عنوان مثال: چگونه اولین عنصر فرزند را بدست آوریم؟

ElmRoot.ChildNodes;

3. مانند زندگی معمولی، کودک می تواند اولین فرزند اول یا آخرین فرزند آخر به دنیا بیاید.

اگر عنصر خودرو را به عنوان مثال در نظر بگیریم، پس

FirstChild مدل LastChild سال است

4. به نوبه خود، بین عناصر کودک نیز پیوندهایی وجود دارد که می توانند برادر یا خواهر باشند.

یک کودک ممکن است، برای مثال، یک برادر خواهر و برادر قبلی و یک برادر خواهر و برادر بعدی داشته باشد

Console.WriteLine(elmRoot.ChildNodes.FirstChild.NextSibling.Name); //نتیجه: سال Console.WriteLine(elmRoot.ChildNodes.LastChild.PreviousSibling.Name); //نتیجه: مدل

اگر عنصر پیدا نشد، یک استثنا پرتاب می شود: NullReferenceException، بنابراین هنگام کار با xml، همیشه از بلوک های try catch استفاده کنید.

Console.WriteLine(elmRoot.ChildNodes. LastChild.NextSibling.Name); Console.WriteLine(elmRoot.ChildNodes. FirstChild.PreviousSibling.Name);

LastChild برادر بعدی است.
FirstChild خواهر و برادر قبلی است.

با استفاده از روش هایی که در بالا توضیح داده شد، می توانید به راحتی به گره مورد نظر بروید و هر مقداری که نیاز دارید را بدست آورید.

چگونه مقدار یک عنصر xml را بدست آوریم؟

مقدار xml یک عنصر را می توان با استفاده از ویژگی InnerText به دست آورد، برای مثال:

Console.WriteLine(elmRoot["car"].FirstChild.InnerText); //نتیجه: مزدا

راه دیگری برای بدست آوردن همان مقدار عنصر xml:

Console.WriteLine(elmRoot.FirstChild.FirstChild.InnerText); //نتیجه: مزدا

دنباله حرکات در طول درخت DOM:

گاراژ -> ماشین -> مدل -> مزدا

سال را می گیریم:

ElmRoot["car"].LastChild.InnerText; //نتیجه: 2007

دنباله:

گاراژ -> ماشین -> سال -> 2007

مثال دیگر: 3 راه برای رسیدن به نتیجه مشابه.

Console.WriteLine(elmRoot.LastChild.FirstChild.InnerText); Console.WriteLine(elmRoot["car"].NextSibling.FirstChild.InnerText); Console.WriteLine(elmRoot.ChildNodes.Item(1).FirstChild.InnerText); //نتیجه: BMW

اگر باید سال را برای عنصری با مقدار مزدا دریافت کنید:

Console.WriteLine(elmRoot.FirstChild.LastChild.InnerText); //نتیجه: 2007

برای BMW (دو راه، همان نتیجه را بگیرید)

Console.WriteLine(elmRoot.ChildNodes.Item(1).ChildNodes.Item(1).InnerText); Console.WriteLine(elmRoot.ChildNodes.ChildNodes.InnerText); //نتیجه: 2009

چگونه مقادیر عناصر xml را تغییر دهیم؟

استفاده از اموال InnerText()می توانید هم مقدار یک عنصر xml را دریافت کنید و هم مقدار آن را تغییر دهید، مثلاً سال را تغییر دهید.

//تنظیم یک مقدار جدید elmRoot.FirstChild.LastChild.InnerText = "2010"; //نمایش مقدار جدید در صفحه کنسول Console.WriteLine(elmRoot.FirstChild.ChildNodes.Item(1).InnerText); //نتیجه: 2010

در عین حال، باید به خاطر داشته باشید که تمام تغییرات با فایل xml مجازی رخ می دهد، اگر فایل فیزیکی را باز کنید، خواهید دید که سال 2007 هنوز در آن مشخص شده است.

برای اعمال تغییرات، باید از روش Save استفاده کنید، برای مثال:

ElmRoot.Save ("نام فایل xml یا جریان");

اکنون اطلاعات در فایل xml "فیزیکی" تغییر خواهد کرد.

چگونه تعداد عناصر فرزند را بدست آوریم؟

Console.WriteLine(elmRoot.FirstChild.ChildNodes.Count);

گاراژ -> ماشین شامل 2 فرزند: مدل و سال

Console.WriteLine(elmRoot.FirstChild.FirstChild.ChildNodes.Count);

گاراژ -> ماشین -> مدل شامل 1 عنصر xml فرزند است.

دسترسی به عناصر کودک

بر اساس شاخص

ElmRoot.ChildNodes.Name; elmRoot.ChildNodes.Name; //نتیجه: ماشین

با استفاده از یک حلقه

Foreach (نود XmlNode در elmRoot.ChildNodes) ( Console.WriteLine(nod.Name); ) //نتیجه: ماشین، ماشین

چگونه نام عنصر xml را بدست آوریم؟

elmRoot.Name; //نتیجه: گاراژ

ایجاد یک عنصر XML جدید

بیایید یک عنصر جدید در سند XML خود ایجاد کنیم تا با دو مورد دیگر (ماشین) متفاوت باشد، بیایید آن را bus بنامیم.

هنگام ایجاد یک عنصر جدید، از توصیه وب سایت msdn و به جای استاندارد جدید XmlElement از متد CreateElement استفاده می کنیم.

XmlElement elm = xmlDoc.CreateElement("bus");

ایجاد و اضافه کردن یک عنصر xml جدید

بیایید یک عنصر xml جدید با نام "BUS" ایجاد کنیم.

XmlElement elmRoot = xmlDoc.DocumentElement; Console.WriteLine(elmRoot.ChildNodes.Count); //car, car XmlElement elmNew = xmlDoc.CreateElement("bus"); elmRoot.AppendChild(elmNew); Console.WriteLine(elmRoot.ChildNodes.Count); //3 ماشین، ماشین، اتوبوس xmlDoc.Save("نام فایل xml");

توضیح:

1. ابتدا یک عنصر ریشه بدست می آوریم که عناصر جدید را به آن وصل می کنیم.

2. به عنوان یک بررسی، تعداد فعلی عناصر فرزند عنصر گاراژ را نمایش خواهیم داد: 2 (ماشین و ماشین)

3. یک عنصر BUS جدید ایجاد کنید

4. استفاده از روش AppendChildاضافه کردن یک عنصر جدید به درخت

5. بیایید دوباره از چک استفاده کنیم و تعداد عناصر فعلی را برای عنصر گاراژ نمایش دهیم، اکنون 3 مورد از آنها وجود دارد: ماشین، ماشین، اتوبوس.

6. برای اینکه تغییرات روی فایل فیزیکی تاثیر بگذارد، ذخیره کنید

در خود فایل XML، عنصر جدید به شکل زیر خواهد بود:

چگونه یک عنصر xml جدید اضافه کنیم؟

وظیفه: یک عنصر XML جدید ایجاد کنید و مقداری محتوای متنی را به آن اضافه کنید، به عنوان مثال سال ساخت.

String strFilename = @"C:\lessons\Auto.xml"; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(strFilename); XmlElement elmRoot = xmlDoc.DocumentElement; XmlElement elmNew = xmlDoc.CreateElement("bus"); XmlText new_txt = xmlDoc.CreateTextNode("2006"); elmRoot.AppendChild(elmNew); elmRoot.LastChild.AppendChild(new_txt); Console.WriteLine(elmRoot.ChildNodes.Name); //bus Console.WriteLine(elmRoot.ChildNodes.LastChild.InnerText); //2006 Console.Read();

در فایل XML:

2006

برای وضوح

حالا بیایید یک گره اتوبوس با معماری مشابه ماشین ایجاد کنیم، یعنی گره‌ها را اضافه کنیم: مدل، سال و مقداری محتوای متنی.

ایجاد یک عنصر XML با کودکان

string strFilename = @"C:\lessons\Auto.xml"; //یک مورد جدید ایجاد کنید سند xmlدر حافظه XmlDocument xmlDoc = new XmlDocument(); //فایل xml را در حافظه بارگذاری کنید xmlDoc.Load(strFilename); //دریافت عنصر ریشه XmlElement elmRoot = xmlDoc.DocumentElement; //ایجاد 3 عنصر: اتوبوس، مدل، سال XmlElement elmBUS = xmlDoc.CreateElement("bus"); XmlElement elmModel = xmlDoc.CreateElement("model"); XmlElement elmYear = xmlDoc.CreateElement("year"); //تنظیم مقادیر برای عناصر: مدل، سال XmlText year_txt = xmlDoc.CreateTextNode("2006"); //XmlText mod_txt = xmlDoc.CreateTextNode("liaz"); در غیر این صورت اضافه کنید //دو عنصر فرزند را به عنصر اتوبوس اضافه کنید: model و سال elmBUS.AppendChild(elmModel); elmBUS.AppendChild(elmYear); //به گره های مدل و سال مقادیر اضافه کنید elmModel.InnerText = "liaz"; elmYear.AppendChild(year_txt); //یک گذرگاه عنصر xml جدید به درخت elmRoot اضافه کنید.AppendChild(elmBUS); //بررسی کنید که آیا همه چیز همانطور که باید اضافه شده است Console.WriteLine(elmRoot.ChildNodes.FirstChild.InnerText); Console.WriteLine(elmRoot.LastChild.LastChild.InnerText); //اگر همه چیز مرتب است، از روش Save استفاده کنید xmlDoc.Save("xml file name");

نتیجه:

لیاز 2006

چگونه می توانم این کد را کوتاه کنم؟ به عنوان مثال به صورت زیر:

String PathXmlFile = @"C:\lessons\Auto.xml"; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(PathXmlFile); XmlElement elmRoot = xmlDoc.DocumentElement; XmlElement elmBUS = xmlDoc.CreateElement("bus"); XmlElement elmModel = xmlDoc.CreateElement("model"); XmlElement elmYear = xmlDoc.CreateElement("year"); //به گره های مدل و سال مقادیر اضافه کنید elmModel.InnerText = "liaz"; elmYear.InnerText = "2006"; elmBUS.AppendChild(elmModel); elmBUS.AppendChild(elmYear); elmRoot.AppendChild(elmBUS); //اگر همه چیز درست است، متد Save را فراخوانی کنید xmlDoc.Save("xml file name");

بیایید کد را کمی بیشتر کوتاه کنیم، برای انجام این کار از ویژگی InnerXml استفاده می کنیم:

XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(PathXmlFile); XmlElement elmXML = xmlDoc.CreateElement("bus"); string txt = " لیاز" + "2006"; //InnerXml! elmXML.InnerXml = txt؛ //xmlDoc.DocumentElement (برابر با گاراژ خواهد بود) - این روش دیگری برای دسترسی به عنصر ریشه است، همان XmlElement elmRoot = xmlDoc.DocumentElement؛ xmlDoc.DocumentElement.AppendChild (elmXML)؛ xmlDoc.Save(PathXmlFile);

نتیجه

با استفاده از GetElementByTagName فهرستی از عناصر را دریافت کنید

GetElementByTagName برمی گرداند XmlNodeList، که شامل تمام عناصر نسل متعلق به عنصر مشخص شده است، به عنوان مثال، ما باید تمام مدل های ماشین ذخیره شده در گاراژ را دریافت کنیم:

XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(strFilename); XmlNodeList modelName = xmlDoc.GetElementsByTagName("model"); foreach (گره XmlNode در modelName) ( Console.WriteLine(node.InnerText); ) //نتیجه: mazda، bmw، liaz

دسترسی با استفاده از فهرست:

String PathXmlFile = @"C:\lessons\Auto.xml"; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(PathXmlFile); XmlNodeList modelName = xmlDoc.GetElementsByTagName("model"); Console.WriteLine(modelName.InnerText); //نتیجه: liaz

چگونه می توانم محتوای متن یک عنصر "bus" تازه ایجاد شده را با استفاده از روش GetElementByTagName تغییر دهم؟

String PathXmlFile = @"C:\lessons\Auto.xml"; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(PathXmlFile); XmlNodeList modelName = xmlDoc.GetElementsByTagName("model"); Console.WriteLine(modelName.InnerText); //دریافت مقدار: liaz

یا می توانید نام لیاز را به ایکاروس تغییر دهید

Console.WriteLine(modelName.InnerText = "Ikarus");

زبان نشانه گذاری توسعه پذیر (XML). واقعا ساده است فایل های متنی، که از برچسب های سفارشی برای توصیف ساختار و سایر عملکردهای یک سند استفاده می کنند.

XML چیست

XMLیک زبان نشانه گذاری است که توسط کنسرسیوم وب جهانی (W3C) برای تعریف یک نحو برای رمزگذاری اسنادی که توسط انسان ها و ماشین ها قابل خواندن است ایجاد شده است. این کار را از طریق برچسب ها انجام می دهد، که ساختار سند و همچنین نحوه ذخیره و انتقال سند را مشخص می کند.

ساده ترین راه برای مقایسه آن با زبان نشانه گذاری دیگری که ممکن است با آن آشنا باشید این است نشانه گذاری فرامتن(HTML) برای رمزگذاری صفحات وب استفاده می شود. HTML از مجموعه ای از کاراکترهای نشانه گذاری (کدهای کوتاه) از پیش تعریف شده استفاده می کند که قالب محتوای یک صفحه وب را توصیف می کند.

با این حال، تفاوت با XML این است که قابل توسعه است. XML یک زبان نشانه گذاری از پیش تعریف شده مانند HTML ندارد. در عوض، XML به کاربران اجازه می‌دهد تا کاراکترهای نشانه‌گذاری خود را برای توصیف محتوا ایجاد کنند و مجموعه‌ای از کاراکترها را به‌طور نامحدود و خود تعریف کنند.

اساسا، HTML زبانی است که بر ارائه محتوا تمرکز دارد، در حالی که XML یک زبان توصیف داده اختصاصی است که برای ذخیره داده ها استفاده می شود.

XML اغلب به عنوان پایه ای برای سایر قالب های سند استفاده می شود که صدها مورد از آنها وجود دارد. در اینجا چند مورد وجود دارد که ممکن است بخواهید بدانید:

  • RSS و ATOM توضیح می دهند که چگونه برنامه ها باید فیدهای وب را مدیریت کنند.
  • مایکروسافت دات نت از XML برای فایل های پیکربندی خود استفاده می کند.
  • مایکروسافت آفیس از XML به عنوان پایه ساختار سند استفاده می کند.

بنابراین، اگر یک فایل XML دارید، لزوماً به شما نمی گوید که برای چه برنامه ای است. با این حال، لازم نیست نگران این موضوع باشید، مگر اینکه در حال توسعه فایل‌های XML باشید.

نحوه باز کردن یک فایل XML

راه های مختلفی برای باز کردن مستقیم یک فایل XML وجود دارد. شما می توانید آنها را با هر ویرایشگر متنی باز و ویرایش کنید، آنها را با هر مرورگر وب مشاهده کنید، یا از وب سایتی استفاده کنید که به شما امکان مشاهده، ویرایش و حتی تبدیل آنها به فرمت های دیگر را می دهد.

هنگام کار منظم با XML از یک ویرایشگر متن استفاده کنید

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


استفاده از مرورگر وب برای مشاهده یک فایل XML

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

اگر نه، می‌توانید روی فایل کلیک راست کنید تا گزینه‌هایی برای باز کردن آن با هر برنامه دیگری پیدا کنید. به سادگی مرورگر وب خود را از لیست برنامه ها انتخاب کنید.

هنگامی که فایل باز می شود، باید داده های ساختار یافته را ببینید. به زیبایی ظاهر رنگی که در Notepad++ دارید نیست، اما بسیار بهتر از notepad است.

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

اگر می خواهید یک فایل XML تصادفی را ویرایش کنید و نمی خواهید یک ویرایشگر متن جدید دانلود کنید، یا نیاز دارید تبدیل فایل xml به فرمت دیگرچندین ویرایشگر XML آنلاین مناسب به صورت رایگان وجود دارد.

TutorialsPoint.com، XMLGrid.net و CodeBeautify.org - به شما امکان می دهد فایل های XML را مشاهده و ویرایش کنید. پس از تکمیل ویرایش، می توانید فایل XML اصلاح شده را دانلود کنید یا حتی آن را به فرمت دیگری تبدیل کنید.

به عنوان مثال، ما از CodeBeautify.org استفاده می کنیم. صفحه به سه بخش تقسیم شده است. در سمت چپ فایل XML است که با آن کار می کنید. در وسط چندین عملکرد خواهید یافت. در سمت راست، نتایج برخی از گزینه‌هایی را که می‌توانید انتخاب کنید، مشاهده خواهید کرد.

به عنوان مثال، در تصویر زیر، فایل XML کامل ما در سمت چپ است، و پنجره نتایج یک نمای درختی را نشان می دهد، زیرا روی دکمه Tree View در وسط کلیک کردیم.

از دکمه Browse برای بارگیری یک فایل XML از رایانه خود یا دکمه Load URL برای بازیابی XML از یک منبع آنلاین استفاده کنید.

دکمه Tree View داده‌ها را در یک ساختار درختی با فرمت مناسب در صفحه نتایج نمایش می‌دهد که همه برچسب‌ها با رنگ نارنجی و ویژگی‌ها در سمت راست برچسب‌ها برجسته شده‌اند.

Beatify داده های شما را در قالبی منظم و خوانا نمایش می دهد.

دکمه Minify داده های شما را با کمترین فاصله ممکن نمایش می دهد. این تابع هر قطعه داده را در یک خط قرار می دهد. این در هنگام تلاش برای کوچکتر کردن یک فایل مفید خواهد بود که باعث صرفه جویی در فضا می شود.

و در نهایت، می توانید از دکمه XML به JSON استفاده کنید تبدیل های XMLبه فرمت JSON، و یک دکمه Export به CSV برای ذخیره داده ها به عنوان فایل مقادیر جدا شده با کاما، یا یک دکمه دانلود برای دانلود هر تغییری که در فایل XML جدید ایجاد کرده اید.

مدت زیادی از زمانی که قول دادم هنگام توسعه برنامه های NET در مورد کار با داده ها در قالب XML صحبت کنم می گذرد. باید به وعده ها عمل کرد. لطفاً توجه داشته باشید که هدف این مقاله توسعه دهندگان حرفه ای دات نت نیست، بلکه کسانی هستند که هنوز تجربه قابل توجهی در ایجاد برنامه های NET ندارند.


چرا باید با XML کار کنیم؟

اگر هنوز ایده خیلی خوبی از چیستی XML ندارید، توصیه می کنم مقاله "XML جدی است و برای مدت طولانی" در "KV" شماره 2007 را بخوانید. برای صرفه جویی در فضا برای چیزهای مهم تر، خود قالب XML در اینجا تجزیه و تحلیل نمی شود.

قبل از شروع آشنایی با کد برنامه، باید به یک سوال اساسی پاسخ دهید: چرا حتی پشتیبانی XML را در برنامه خود قرار دهید؟ فکر می‌کنم بسیاری از افراد در مورد بسیاری از فناوری‌ها این سوال را از خود پرسیده‌اند، و همه آنها پس از پاسخ در برنامه‌ها گنجانده نشده‌اند. با این حال، با XML وضعیت تا حدودی متفاوت است، و دلایل واقعی برای استفاده از این فرمت در بسیاری از موقعیت ها وجود دارد.

مزیت اصلی XML این است که به دلیل ماهیت فرمت متنی، به طور کامل امکان ذخیره و انتقال هر داده را فراهم می کند. از آنجایی که این قالب متنی است، مشکل کراس پلتفرم آن به خودی خود حل می شود و مشکل انتقال داده های XML به همین راحتی حل می شود (مثلاً در SOAP انجام می شود). علاوه بر این، می‌توانید با افزودن ویژگی‌های جدید و بدون نگرانی در مورد سازگاری با نسخه‌های قبلی فرمت، به راحتی فرمت انتقال داده یا ذخیره‌سازی را تغییر دهید، زیرا برنامه‌هایی که از نسخه قدیمی استفاده می‌کنند قادر خواهند بود بدون توجه به موارد جدید، آنچه را که نیاز دارند بخوانند. برچسب ها یا ویژگی ها . بسیاری از برنامه ها از XML مبتنی بر XML استفاده می کنند فرمت های فایل، بسیاری از پروتکل های انتقال داده نیز مبتنی بر XML هستند و لیست هر دو همچنان در حال رشد است.

البته، از سوی دیگر، XML چندان مقرون به صرفه نیست، زیرا همانطور که یکی از بازدیدکنندگان انجمن اخبار کامپیوتر زمانی به درستی اشاره کرد، اسناد XML اغلب از 10٪ داده و 90٪ برچسب ها تشکیل شده است. با این حال، این تا حد زیادی به برچسب هایی که انتخاب می کنید بستگی دارد. می توانید بنویسید خیابان ملنیکایت، 2، آیا ممکن است . اگر چه، صادقانه بگویم، به نظر من با هارد دیسک های فعلی و کانال های ضخیم هیچ فایده ای برای فشرده شدن خاص ندارد.

بنابراین در دستان درست، XML یک چیز قدرتمند و راحت است و به دلیل فراگیر بودن این قالب، به هیچ وجه نمی توانید از آن فرار کنید. پس بیایید به سراغ نوشتن برویم کد برنامه.

برای برنامه نویسی از زبان اصلی پلتفرم دات نت - C# استفاده خواهیم کرد. برای اینکه هر چه بیشتر خوانندگان بتوانند خودشان با کد برنامه داده شده تمرین کنند، از اولین نسخه سی شارپ و دات نت فریم ورک استفاده خواهم کرد.


ثبت داده ها

اول، اجازه دهید در مورد نوشتن داده ها صحبت کنیم، زیرا، می دانید، برای خواندن چیزی از جایی، ابتدا باید چیزی را در جایی بنویسید. و از آنجایی که من و شما برنامه نویسی را شروع کردیم، ایجاد دستی داده های XML برای ما مناسب نیست. بنابراین اجازه دهید ابتدا با نوشتن داده ها در XML شروع کنیم.

ابتدا یک پروژه جدید در Visual Studio، #Develop یا C# Builder ایجاد کنید و System.Xml را به لیست فضاهای نام وارد شده اضافه کنید.

یک کلاس خاص، XmlTextWriter، مسئول نوشتن داده‌های XML در .NET Framework است که به شما امکان می‌دهد تا داده‌های XML را در یک جریان دلخواه بنویسید و از طریق اینترنت برای شخصی ارسال کنید، اما اکنون همه چیز را روی یک فایل می نویسیم. stream من فکر می کنم قبلاً کمی جلوتر از خودم بوده ام.

String FileName = "c:\\demo.xml"; XmlTextWriter xml = XmlTextWriter جدید (FileName, System.Text.Encoding.Unicode); xml.Formatting = Formatting.Indented; xml.WriteStartDocument(); xml.WriteStartElement("rootelement"); برای (int i = 0; i< 10; i++) { xml.WriteStartElement("subelement"); xml.WriteAttributeString("attrib1", "value1"); xml.WriteAttributeString("attrib2", i.ToString()); for (int j = 0; j < 10; j++){ xml.WriteStartElement("subsubelement"); xml.WriteAttributeString("attr", j.ToString()); xml.WriteEndElement(); } xml.WriteEndElement(); } xml.WriteEndElement(); xml.WriteEndDocument(); xml.Close();

خط اول، به نظر من، کاملاً واضح است - این به سادگی نام فایلی است که داده ها را در آن ذخیره می کنیم. بعد، یک شی از نوع XmlTextWriter ایجاد می کنیم (همانطور که می بینید، xml نامیده می شود) و با آن است که تمام عملیات های بعدی را انجام خواهیم داد. لطفاً توجه داشته باشید که هنگام ساخت یک شی، رمزگذاری را نیز مشخص می کنیم که XML در آن نوشته می شود: در مثال ما، این یونیکد است. خط بعدی، به طور کلی، مورد نیاز نیست، اما سند XML ما را، همانطور که می گویند، قابل خواندن برای انسان می کند، یعنی تورفتگی های لازم را اضافه می کند و آن را به خطوط تقسیم می کند. بدون این، کل سند در یک خط نوشته می شود، که اگرچه باعث صرفه جویی در فضا می شود، اما عملاً آن را برای ویرایش دستی نامناسب می کند.

نوشتن سند با فراخوانی متد WriteStartDocument() شی xml ما شروع می شود. خط زیر آن عنصر ریشه "rootelement" را به سند XML ما اضافه می کند (اجازه دهید یادآوری کنم که برای اسناد XML عنصر ریشه باید در یک نسخه وجود داشته باشد). سپس، در یک چرخه، ده عنصر دیگر را که بار معنایی ندارند به سند XML خود اضافه می‌کنیم، که برای هر کدام دو ویژگی و ده عنصر فرعی دیگر تعیین می‌کنیم. لطفاً توجه داشته باشید که می‌توانیم یک عدد را بدون تبدیل صریح داده‌ها به یک رشته اضافه کنیم، اما اگر عدد باید کاملاً یک رشته باشد، باید به طور صریح با استفاده از روش ToString() تبدیل شود. همچنین توجه داشته باشید که ما باید به صراحت هر یک از عناصر سند XML خود و سپس کل سند را ببندیم.

اکنون که سند XML ما با موفقیت نوشته شده است، بیایید ببینیم چگونه می توانیم داده ها را از آن بخوانیم.


خواندن داده ها

یک کامپوننت listBox به فرم برنامه خود اضافه کنید (مگر اینکه یک برنامه کنسولی باشد) تا بتوانید نتیجه خواندن فایل XML را کنترل کنید. خوب، اگر برنامه شما یک برنامه کنسول است، پس می توانید به راحتی خروجی را به کنسول هدایت کنید.

طبق معمول ابتدا با کد برنامه آشنا می شویم و سپس بررسی می کنیم که این کد دقیقا چه کاری انجام می دهد.

XmlTextReader xml = XmlTextReader جدید (FileName); xml.WhitespaceHandling = WhitespaceHandling.None; int i = 0; while (xml.Read())( if ((xml.NodeType == XmlNodeType.Element) & (xml.Name == "subelement")) ( listBox1.Items.Add(" subelement " + i + " found") i++; listBox1.Items.Add("" + xml.GetAttribute("attrib1") )( listBox1.Items.Add(" " + xml.GetAttribute("attr")); ) ) ) xml.Close();

برای خواندن، همانطور که متوجه شده اید، از کلاس دیگری به نام XmlTextReader استفاده می کنیم. در همان فضای نام کلاسی است که برای نوشتن داده ها استفاده کردیم. در خط اول، نمونه‌ای از XmlTextReader با نام xml ایجاد می‌کنیم (در اینجا فرض می‌کنیم که متغیر FileName قبلاً توسط ما تعریف شده بود، اگر خطوط خالی به‌طور غیرقابل توضیحی در فایل XML ایجاد شده ظاهر شوند، از موارد زیر استفاده می‌کنیم). خط در قطعه کد داده شده از متغیر i برای شمارش تعداد عناصر "زیر عنصر" موجود در فایل XML که داده ها از آن خوانده می شوند استفاده می شود.

بعد چرخه خواندن مستقیم داده ها از فایل می آید. متد Read() عنصر بعدی سند XML را می خواند و پس از خواندن آن، بررسی می کنیم که دقیقا چه چیزی می خوانیم. اگر واقعاً یک عنصر "زیر المان" است، اطلاعات مربوط به عنصر خوانده شده را به listBox1 اضافه می کنیم، یک متغیر حاوی تعداد عناصر خوانده شده را افزایش می دهیم و سپس ویژگی های عنصر را می خوانیم. پس از خواندن ویژگی ها، یک حلقه جداگانه برای خواندن عناصر فرعی سازماندهی می کنیم (توجه داشته باشید که برای این کار نیازی به XmlTextReader جداگانه نداریم) و ویژگی های این عناصر فرعی مانند قبل، تمام اطلاعات خوانده شده را در listBox1 وارد می کنیم تا صحت آن را کنترل کنیم خواندن

هنگام خواندن فایل‌های XML، به همان روشی که هنگام نوشتن آن‌ها، هنگام ساختن XmlTextReader، می‌توانید جریانی را که از آن خوانده می‌شود به عنوان پارامتر مشخص کنید، و سپس می‌توانید نه تنها از فایل‌ها، بلکه از منابع دیگر، نمونه‌هایی از یکی از ویژگی های مفید کلاس XmlTextReader را باید در نظر گرفت: هنگام خواندن، کل سند XML در حال خواندن در حافظه بارگیری نمی شود، بنابراین تجزیه اسناد بزرگ XML (به عنوان مثال، پایگاه داده های XML) راحت است. .


پشت صحنه

به طور کلی، مثالی که ما به آن اشاره کردیم برای پروژه های واقعی بسیار ساده است. امروزه، هنگام خواندن اسناد XML، آنها معمولاً با استفاده از DTD، XML Schema یا Relax NG تأیید می شوند. اعتبارسنجی عبارت است از بررسی انطباق نشانه گذاری یک سند XML با استانداردهای شرح داده شده در فایل خارجی. اعتبارسنجی مورد نیاز است تا تأیید سند به صورت سخت به الگوریتم برنامه متصل نشود، اما زمانی که قالب داده‌ها بدون به‌روزرسانی کد برنامه‌ای که داده‌ها را می‌خواند یا می‌نویسد تغییر می‌کند، می‌توان خودسرانه آن را تغییر داد. متأسفانه، اکنون ما زمانی برای بررسی اعتبارسنجی نخواهیم داشت، زیرا، همانطور که خودتان متوجه شدید، حجم مقاله روزنامه محدودیت های خاصی دارد.

یکی دیگر از نکات کاربردی جالب و مفید در مورد کار با داده های XML، تبدیل داده های XSL است. این تغییر زمانی روی داده ها اعمال می شود که در صفحات HTML نمایش داده می شوند و در واقع به سادگی یک الگوی صفحه وب خاص را روی یک فایل XML حاوی داده هایی اعمال می کنند. از آنجایی که سهم عمده استفاده کنونی از داده‌های XML به هر طریقی در شبکه جهانی وب است، بسیار بسیار خوب است که تبدیل‌های XSL را در نظر بگیریم.

بنابراین، من فکر می کنم، این مقاله ادامه خواهد داشت - اما، البته، فقط در صورتی که خودتان (یعنی خوانندگان اخبار رایانه) در مورد آن در انجمن یا در نامه ای به آدرس ایمیل من بپرسید. در حال حاضر، احتمالاً همه چیز در مورد استفاده از XML در برنامه های NET است. امیدوارم این اطلاعات برای شما مفید باشد.

اکنون کار با XML را مطالعه می کنیم.

XML فرمتی برای تبادل داده بین سایت ها است.

API چیست؟ این مجموعه ای از توابع است که با آن می توانید درخواستی را به این سایت ارسال کنید و پاسخ مورد نظر را دریافت کنید.

این پاسخ اغلب در قالب XML ارائه می شود. پس بیایید مطالعه آن را شروع کنیم.

کار با XML در PHP

فرض کنید XML دارید. این می تواند در یک رشته باشد، یا در یک فایل ذخیره شود، یا در صورت درخواست به یک URL خاص ارائه شود. اجازه دهید XML در یک رشته ذخیره شود. در این حالت باید با استفاده از این رشته یک شی ایجاد کنید:

SimpleXMLElement جدید $str = " 25 1000 کولیا

";$xml = new SimpleXMLElement($str); اکنون در متغیر داریم xml $

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

$str = " 25 1000

، که همان شی را می سازد

$xml = simplexml_load_file (مسیر فایل یا URL)؛

روش های کار

در مثال های زیر، XML ما در یک فایل یا URL ذخیره می شود.

$str = " 25 1000

اجازه دهید XML زیر داده شود:

بیایید نام، سن و حقوق کارمند را بدست آوریم:

$xml = simplexml_load_file (مسیر فایل یا URL)؛ echo $xml->name; //"Kolya" echo $xml->age را نمایش خواهد داد. //خروجی 25 echo $xml->salary; //خروجی 1000 خواهد داشت

همانطور که می بینید، شی $xml دارای ویژگی های مربوط به تگ ها است. ممکن است متوجه شده باشید که برچسب در هیچ کجای تجدیدنظر ظاهر نمی شود.

$str = " 25 1000

بیایید نام، سن و حقوق کارمند را بدست آوریم:

این به این دلیل است که تگ ریشه است. شما می توانید آن را تغییر نام دهید، برای مثال، به

- و هیچ چیز تغییر نخواهد کرد:

$str = " 25 1000

فقط یک تگ ریشه در XML می تواند وجود داشته باشد، درست مانند آن

در HTML ساده

بیایید XML خود را کمی تغییر دهیم:

در این مورد، ما زنجیره ای از درخواست ها را دریافت خواهیم کرد:

$xml = simplexml_load_file (مسیر فایل یا URL)؛ echo $xml->worker->name; //"Kolya" echo $xml->worker->age را نشان خواهد داد. //خروجی 25 echo $xml->worker->salary; //خروجی 1000 خواهد داشت

کار با ویژگی ها

اجازه دهید برخی از داده ها در ویژگی ها ذخیره شوند:

شماره 1

$str = " $xml = simplexml_load_file (مسیر فایل یا URL)؛ echo $xml->worker["name"]; //"Kolya" echo $xml->worker["age"] را نمایش خواهد داد. //خروجی 25 echo $xml->worker["salary"]; //خروجی 1000 echo $xml->worker; // "شماره 1" را نمایش می دهد

برچسب ها با خط تیره

XML به برچسب ها (و ویژگی ها) با خط فاصله اجازه می دهد. در این مورد، دسترسی به چنین برچسب هایی به صورت زیر رخ می دهد:

ایوانف

$str = " 25 1000 $xml = simplexml_load_file (مسیر فایل یا URL)؛ echo $xml->worker->(first-name); //"Kolya" echo $xml->worker->(Last-name) را نمایش خواهد داد. //"ایوانف" را نمایش می دهد 26 2000 حلقه زدن 27 3000

$xml = simplexml_load_file (مسیر فایل یا URL)؛ foreach ($xml به عنوان $worker) ( echo $worker->name؛ //"Kolya"، "Vasya"، "Petya" را نشان خواهد داد)

از شی به آرایه معمولی

اگر کار با شی راحت نیستید، می توانید با استفاده از ترفند زیر آن را به یک آرایه PHP معمولی تبدیل کنید:

$xml = simplexml_load_file (مسیر فایل یا URL)؛ var_dump(json_decode(json_encode($xml)، true));

اطلاعات بیشتر

تجزیه بر اساس sitemap.xml

اغلب یک سایت دارای فایل sitemap.xml است.

این فایل لینک‌هایی را به تمام صفحات سایت ذخیره می‌کند تا فهرست‌بندی آسان توسط موتورهای جستجو انجام شود (ایندکس‌سازی اساساً تجزیه سایت توسط Yandex و Google است).

به طور کلی، ما نباید زیاد نگران این باشیم که چرا این فایل مورد نیاز است، نکته اصلی این است که در صورت وجود، لازم نیست با استفاده از روش‌های پیچیده در صفحات سایت بخزی، بلکه فقط از این فایل استفاده کنید.

نحوه بررسی وجود این فایل: اجازه دهید سایت site.ru را تجزیه کنیم، سپس به سایت site.ru/sitemap.xml در مرورگر بروید - اگر چیزی را مشاهده کردید، آنجاست، و اگر آن را نمی بینید، بعد افسوس

اگر نقشه سایت وجود داشته باشد، حاوی لینک هایی به تمام صفحات سایت در قالب XML است. به آرامی این XML را بردارید، آن را تجزیه کنید، پیوندها را به صفحاتی که نیاز دارید به هر شکلی که برای شما مناسب است (به عنوان مثال، با تجزیه و تحلیل URL، که در روش عنکبوت توضیح داده شد) جدا کنید.

در نتیجه، شما لیستی از پیوندها را برای تجزیه دریافت می کنید.

درباره دستگاه sitemap.xml در ویکی پدیا بیشتر بخوانید.

بعد چه باید کرد:

حل مسائل را با استفاده از لینک زیر شروع کنید: مسائل مربوط به درس.

© 2024 ermake.ru -- درباره تعمیر رایانه شخصی - پورتال اطلاعاتی