رفتن به مطلب
abbasi

آموزش xml

پست های پیشنهاد شده

با سلام خدمت همه ی دوستان

خوب این اولین پست من این در فروم هست و ان شا ء الله سعی دارم در این انجمن مقالات اموزشی خوبی که به درد همه بخوره قرار بدم

اولین پست اموزشی در مورد xml هست امید وارم تا آخر با ما باشید.

XML چيست ؟

یکی از ابزاری است که این مدته به شدت وارد بورس شده و حیفه، که من حرفی از این مبحث مطرح نکنم.

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

من یک فایل در آدرس "C:\Data1.XML" دارم با محتوای زیر:

<?xml version="1.0" ?>



AraSoft

18

Male



حال لازمه که این اطلاعات که شامل اسم ، سن ، جنسیت من هست در برنامه استفاده کنیم.پس ابتدا Namespace مورد نظر " System.Xml " رو به برنامه اضافه کرده و Imports System.Xml ... استاد میکنید.

و در قسمت مورد نظر کد مربوط رو مینویسیم:

Dim Reader as XMLNodeReader

Dim DC as New XMLDocument

Dim NickName, Sex as String

Dim Age as Long



DC.load ("C:\Data1.Xml")

Reader = New XMLNodeReader (DC)

Do until Reader.EOF

           Reader.Read

           Select Case Reader.LocalName

                       Case "Name"

                                   If Reader.IsStartElement then

                                               Reader.MoveToElement

                                               If Not Reader.Value.Trim = Nothing then

                                                           MSGbox (Reader.Value)

                                               End IF

                                   End If

                       Case "Age"

                                   If Reader.IsStartElement then

                                               Reader.MoveToElement

                                               If Not Reader.Value.Trim = Nothing then

                                                           MSGbox (Reader.Value)

                                               End IF

                                   End If

                                   Case "Sex"

                                   If Reader.IsStartElement then

                                               Reader.MoveToElement

                                               If Not Reader.Value.Trim = Nothing then

                                                           MSGbox (Reader.Value)

                                               End IF

                                   End If

           End Select

Loop

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

:s:s

آشنايي با XML قسمت دوم

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

XML برای خود یک دستوره نگارشی و املایی دارد. شما در حین یادگیری عبارتهای XML با اون آشنا میشید.

تگها:

شما با عبارتهای HTML یا همان TAG ها آشنا هستید <تگ> در XML از همان تگها استفاده میشود ولی نکته مهم اینجاست که XML به شدت به حروف کوچک و بزرگ حساسیت داره پس اگر شما تگ ابتدای خودتون رو به دین صورت نوشتید باید تگ پاییانی هم بدین صورت بنویسید .

اعلان شروع فایل XML:

فایل XML با یک اعلان شروع میشه که باید در اولین خط باشه (کاملا اختیاری):

<? xml version="1.0" ?>

حتما به بزرگی و کوچکی حروف دقت کنید. تگ اعلان XML به صورت <؟ و بعد کلمه XML و بعد از اون نوع version که تا کنون آخرین اون "1.0" بوده قرار میگیره و سپس تگ پایانی اون ؟>.

نوشتن تگها:

تگها در حقیقت همان رکوردها هستند که فیلدهای متغییری میتوانند داشته باشند(البته اگر با Database آشنا باشید). شما اطلاعات خودتون رو با استفاده از تگها ذخیره میکنید مثلا برای ذخیره اسمتون: AraSoft

برای ذخیره اطلاعات شما به دو تگ نیاز دارید یکی آغازی و دیگری پایانی این دو در حقیقت تشکیل یک تگ صحیح را میدهند. یک تگ آغازی به صورت اول > و بعد اسم مورد نظر و سپس < نوشته میشود. تگ پایانی تنها یک تفاوت کوچک دارد که آن در آولین بخش تگ است. تگ پایانی به صورت و اسم مورد نظر و <. میبینید که در تگ پایانی علاوه بر > یک علامت / هم وجود دارد:

Begin:

End:

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

<? Xml version="1.0" ?>

تداخل تگها:

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

درست:

<? Xml version="1.0" ?>







:غلط

<? Xml version="1.0" ?>







 ß-----Error

تگ پوچ:

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

افزوردن ویژگی به تگ:

تگ ها قدرت داشتن ویژگی رو دارند (Attribute).

1.Home

2.Home

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

:P:P

آشنايي با XML قسمت سوم

یک حالت ساده از خواننده های فایلهای XML در .Net همین XMLTextReader است.

این راننده (Driver) فقط رو به جلو حرکت میکند وهرچی در سر راهش باشد در حافظه اش ذخیره میکند.و مهمترین قسمت اینکه از DTD و XMLSchema نیز پشتیبانی نمیکند.و این برای شروع کار ما که با این دو نوع آشنا نیستیم بسیار مناسب است

Imports System.Xml



Dim Reader as XmlTextReader

Reader = New XmlTextReader("Data\Setting.Xml")'فایل مورد نظر

  Do Until Reader.EOF'در صورت به اتمام رسیدن فایل حلقه متوقف میشود

     Reader.Read()'خواندن تگ بعدی

     MsgBox(">---")

     MsgBox("Depth: " & Reader.Depth)

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

     MsgBox("LocalName: " & Reader.LocalName)

                      'خواندن اسم تگ  localName is Book

     MsgBox("Attribute: " & Reader.ReadAttributeValue)

                      'مقدار خاصیت قرار داده شده

     MsgBox("Value: " & Reader.Value)

                      'محتوای داخلی تگ

     MsgBox("---<")

  Loop

همینطور که میبینید بسیار ساده میشه از این Object استفاده کرد. شمامیتونید به راحتی فایل XML خود رو باز کرده و اون رو به ترتیب بخونید.

*همانطور که میبینید در قسمت خواصیت تگ اگر تگ خواصیتی رو نداشته باشه مقدار 

برگشتی False میباشد.

*در قسمت Depth ؛ اگر تگی در داخل روت اصلی باشد مقدار 1 رو بر مگردونه و اگریک تگ در داخل این تگ باشه پس مقدار 2 رو بر میگردونه و اگر خود روت باشه 

مسلماً مقدار صفر 0 را بر میگردونه. 

*شما میتوانید با استفاده از LocalName یک قیلطر قرار دهید که هر LocalName که مقداری در بر نگیرد نمایش ندهد.

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

:cool::cool:

آشنايي با XML قسمت چهارم

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

XMLNodeReader

همین طور که از اسمش معلومه برای برسی XML بر اساس گره ها (Node) طراحی شده. این Reader از DTD و XML Schema پشتیبانی نمیکند ولی تعریف های داخل DTD رو میشناسه.

خوب طبق معمول با یک مثال این Reader رو تعریف میکنیم.که من فکر میکنم هیچ آموزشی نمیتونه مانند مثال به یک نفر کمک کنه پس ما هم... :

Imports System.Xml



Dim Reader As XMLNodeReader

Dim DOC As New XmlDocument

   DOC.Load("\Data\Setting.Xml")

   Reader = New XMLNodeReader(DOC)

   Do Until Reader.EOF

       Reader.Read()

       MsgBox("---")

       MsgBox("Depth: " & Reader.Depth)

       MsgBox("LocalName: " & Reader.LocalName)

       MsgBox("Attribute: " & Reader.ReadAttributeValue)

       MsgBox("Value: " & Reader.Value)

       MsgBox("---")

   Loop

همینطور که میبینید این Reader هم بسیار شبیه Reader قبلی است. ولی در Open کردن فایل کمی تفاوت دارد. مهمترین قسمت این قسمت طریقه بازشدن فایل بوسیله XMLNodeReader است چون بقیه قسمتهای NodeReader و TextReader فرق چندانی با هم ندارد. ولی یک Object اضافه بر سازمان در این قسمت برای باز کردن فایل استفاده کردم. این Object بسیار قدرتمند است و در آینده حتما بر روی اون بحث خواهم کرد. من به شما سفارش میکنم اگر از XML به صورت ابتدایی استفاده میکنید از همین Reader استفاده کنید چون بسیار سریع تر و دقیقتر ( نه از نظر من حتی از نظر Microsoft) از TextReader است. من برای مطرح کردن بقیه مسایل در XML باید به آموزش کوتاهی درباره DTD بپردازم پس تا یادداشت بعد.

:D:D

منبع arasoft.partianews.com

نظر یادتون نره :thankyou:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید ارسال داشته باشید و بعد ثبت نام خود را در سایت کامل نمایید. اگر حساب کاربری در سایت دارید، جهت ارسال با حساب کاربری خود هم اکنون وارد سایت شوید

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • افزودن...