مشاهده نسخه کامل
: آموزش Xml
samanvilli
14-01-2008, 21:42
XML چيست ؟
يکي از ابزاري است که اين مدته به شدت وارد بورس شده و حيفه، که من حرفي از اين مبحث مطرح نکنم.
XML يک سيستم ذخيره اطلاعات است که ميتوان در زمينه هاي مختلف تعميمش داد. حال من آموزش گوشه هاي از XML رو ميخوام با يک مثال شروع کنم. شما فقط سعي کنيد مکانيزم کاري و کاربرد XML رو درک کنيد. درک مطالب و مباحث کمکه زيادي به شما در برنامه نويسي ميکنه پس مثال زير رو با دقت بخونيد، اگه گوشه هاي از کد رو متوجه نشديد مهم نيست چون در درس هاي بعدي اين Object ها و باقيه Object هاي مربوط به XML رو آموزش ميدم.
من يک فايل در آدرس "C:\Data1.XML" دارم با محتواي زير:
< ?xml version="1.0" ?>
< Person>
AraSoft< /Name >
18< /Age>
Male< /--->
حال لازمه که اين اطلاعات که شامل اسم ، سن ، جنسيت من هست در برنامه استفاده کنيم.پس ابتدا Namespace مورد نظر " System.Xml " رو به برنامه اضافه کرده و Imports System.Xml ... استاد ميکنيد.
و در قسمت مورد نظر کد مربوط رو مينويسيم:
Dim Reader as XMLNodeReader
Dim DC as New XMLDocument
Dim NickName, --- 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 "---"
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 رو استاد کنم.فقط يادتون نره قدم به قدم پس تا بعد.
منبع : فافا اي تي
samanvilli
14-01-2008, 21:42
آشنايي با XML قسمت دوم
اکثر افرادي که قصد يادگيري XML رو دارند، نمي تونند XML رو خوب بفهمند. شما سعي کنيد XML رو يک سيستم ذخيره اطلاعات بدونيد.بعدا با يادگيري قسمتهاي بعدي XML با کاربردهاي XML آشنا ميشيد و راحتتر ميتونيد به صورت حرفه اي از اون استفاده کنيد.البته اين يادآوري کنم که من فقط قصد آشنا سازي شما با XML رو دارم نه آموزش کامل XML.
XML براي خود يک دستوره نگارشي و املايي دارد. شما در حين يادگيري عبارتهاي XML با اون آشنا ميشيد.
تگها:
شما با عبارتهاي HTML يا همان TAG ها آشنا هستيد < تگ> در XML از همان تگها استفاده ميشود ولي نکته مهم اينجاست که XML به شدت به حروف کوچک و بزرگ حساسيت داره پس اگر شما تگ ابتداي خودتون رو به دين صورت نوشتيد < TaG> بايد تگ پايياني هم بدين صورت بنويسيد < /TaG>.
اعلان شروع فايل XML:
فايل XML با يک اعلان شروع ميشه که بايد در اولين خط باشه (کاملا اختياري):
حتما به بزرگي و کوچکي حروف دقت کنيد. تگ اعلان XML به صورت < ؟ و بعد کلمه XML و بعد از اون نوع version که تا کنون آخرين اون "1.0" بوده قرار ميگيره و سپس تگ پاياني اون ؟ >.
نوشتن تگها:
تگها در حقيقت همان رکوردها هستند که فيلدهاي متغييري ميتوانند داشته باشند(البته اگر با Database آشنا باشيد). شما اطلاعات خودتون رو با استفاده از تگها ذخيره ميکنيد مثلا براي ذخيره اسمتون: AraSoft< /Name >
براي ذخيره اطلاعات شما به دو تگ نياز داريد يکي آغازي و ديگري پاياني اين دو در حقيقت تشکيل يک تگ صحيح را ميدهند. يک تگ آغازي به صورت اول > و بعد اسم مورد نظر و سپس < نوشته ميشود. تگ پاياني تنها يک تفاوت کوچک دارد که آن در آولين بخش تگ است. تگ پاياني به صورتيک علامت / هم وجود دارد:
Begin: < Name >
End: < /Name >
براي نوشتن تگها بايد به اين توجه کنيد که اسم تگ شروع (< Name>) و اسم تگ پاياني (< /Name>) نبايد از نظر کوچکي و بزرگي فرق کند. و نکته مهم اينکه شما بايد XML خود رو با يک تگ اصلي بپوشانيد و بقيه تگها رو داخل اون قرار دهيد مثل:
< ? Xml version="1.0" ?>
< Root>
< /Child1 >
< /Child2>
< / Root>
تداخل تگها:
اگر شما تگي رو شروع کرديد و ميخواهيد تگي رو داخل اون قرار دهيد شروع و پايان تگ بايد در داخل تگ اصلي باشد مانند زير:
درست:
< ? Xml version="1.0" ?>
< root>
< child1/>
:غلط
< ? Xml version="1.0" ? >
< root >
< child1 >
< /child1 > ?-----Error
تگ پوچ:
شايد در مرور Xml هاي که من نوشتم يه اين تگ < Child1 /> رسيده و تعجب کنيد که چرا من قانون نوشتن تگها رو نقض کردم و لي در حقيقت اين خود يک دستور نگارشي است مبني بر اينکه اگر تگي هيچ مقداري رو در بر نميگيرد بهتر است به صورت < Name/> نوشته شود "شبيه به HTML" تا به راحتي برسي XML افزوده شود.
افزوردن ويژگي به تگ:
تگ ها قدرت داشتن ويژگي رو دارند (Attribute).
1.Home< /SectionOfSite>
2.Home< /SectionOfSite>
شما ميتوانيد براي مقدار هر تگ يک خاصيت يا ويژگي تعيين کنيد. مثلا من در شماره 1 گفتم قسمت سايت=خانه و با زبان فارسي و در شماره 2 گفتم که قسمت سايت=خانه و به زبان انگليسي.
samanvilli
14-01-2008, 21:43
آشنايي با 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 ها رو معرفي ميکنم و اگر نکته مهمي وجود داشته باشد گفته ميشود.پس اگر در اين زمينه مشکلي بوجود اومد ميتونيد اونو مطرح کنيد چون اين مبحث خيلي وسيع هست و نميشه به اين راحتي با اون کنار اومد.
samanvilli
14-01-2008, 21:43
آشنايي با 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 است.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.