نمایان
www.3manage.com
لایسنس آنتی ویروس

اچ ام ال XML

خواندن داده ها به فرمت XML و نمایش آنها بوسیله DataList

‫XML امروزه بعنوان یکی از کاربردی ترین روشهای حفظ و انتقال داده ها به شمار می رود.

فرمت ساده آن، متنی بودن و همخوان بودن با سایر استانداردها، نرم افزارهای کاربردی امروزی و آینده را بیش از پیش به سوی خود سوق می دهد. در دنیای برنامه های تحت وب XML بعنوان یکی از روان ترین و ساده ترین روشها برای حفظ اطلاعات و یا انتقال اطلاعات ( WebSrvices ) به کار می رود. امروزه اکثر سایتهای اینترنتی بویژه آنها که برپایه NET. بنا شده اند، برای آن دسته از داده های دینامیکی خود که رکوردهای نه چندان زیادی را شامل می شوند از XML استفاده می کنند.

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

ایجاد یک پایگاه داده بویسله XML

XML  امروزه بعنوان یکی از کاربردی ترین روشهای حفظ و انتقال داده ها به شمار می رود. فرمت ساده آن، متنی بودن و همخوان بودن با سایر استانداردها، نرم افزارهای کاربردی امروزی و آینده را بیش از پیش به سوی  خود سوق می دهد. در دنیای برنامه های تحت وب XML  بعنوان یکی از روان ترین و ساده ترین روشها برای حفظ اطلاعات و یا انتقال اطلاعات ( WebSrvices )  بکار می رود. امروزه اکثر سایتهای اینترنتی بویژه آنها که برپایه NET.  بنا شده اند، برای آندسته از داده های دینامیکی خود که رکوردهای نه چندان زیادی را شامل می شوند از XML  استفاده می کنند.

به XML به عنوان یک پلیگاه داده نیز می توان نگریست. در یک فایل XML  بمانند سایر پایگاههای داده نظیر SQL Server ، Access و … می توان براحتی بر روی رکوردهای خاص Query  گرفت و یا داده های موجود را اصلاح کرد.

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

 

داریم. از آنجا که قصد استفاده از XML  را داریم به ایجاد یک پایگاه کوچک به فرمت XML  می پردازیم. در XML  نیز مانند سایر پایگاههای داده می توانیم از Table  استفاده کنیم. پس یک Table  با نام Books  ایجاد می کنیم که فیلدهای آن مطابق زیر می باشد.

Title  |  Abstract  |  Link  |  Image

از آنجا که XML دارای یک فرمت متنی می باشد لذا در هر ادیتور متنی می توان به ایجاد یک فایل XML  پرداخت. Visual Studio .NET خود دارای بهترین ادیتور برای XML  می باشد اما اگر قصد فارسی نویسی در XML  را دارید MS Word 2003  پیشنهاد می شود هرچند که در ادیتور VS.NET  نیز می توان داده های فارسی در XML  درج کرد.

در این مقاله به ایجاد فایل XML  در محیط VS.NET  می پردازیم. برای این منظور از منوی File گزینه New  و بعد File  را انتخاب کنید. به این ترتیب یک فایل XML  خالی در اختیار شما قرار می گیرد.  در اینجا می بایست پایگاه داده مان را نامگذاری کنیم. برای این منظور یک المان با نام دلخواه به آن اضافه می کنیم در اینجا نام پایگاه داده را DataBook  می گذاریم به صورت زیر عمل می کنیم.

<? xml……………….?>

<DataBook>

</DataBook>

خوب پس تا اینجای کار یک پایگاه داده بنام DataBook  داریم حال باید Tableمورد نظر را به این پایگاه داده اضافه کرد. نام Table را Books انتخاب کرده و بصورت زیر عمل می کنیم.

<DataBook>

<Books>

</Books>

</DataBooks>

Table مورد نطرمان همانطور که گفته شد دارای چهار فیلد Title ،Abstract ،Link ،Image  می باشد که بصورت زیر به Table  اضافه می شود.

<DataBook>

<Books>

<Title></Title>

<Abstract></Abstract>

<Link></Link>

<Image></Image>

</Books>

</DataBooks>

خوب در اینجا Table مورد نظر ما آماده شده است. اگر عادت به مشاهده Table  بصورت معمول آن دارید کافیست در پایین صفحه ادیتور XML  که در VS.NET  باز کرده اید بر روی گزینه Data  کلیک کنید.  حال Table مورد نظر را بصورت همان Table هایی که قبلا” در SQL Server و Accsess  و … دیده اید مشاهده می کنید. حال کافیست اطلاعات مورد نظر کتابهایمان را وارد کنیم. چند رکورد بصورت دلخواه به این Table  اضافه کنید. حال اگر در پایین صفحه گزینه XML  را انتحاب کنیم اطلاعات وارد شده را به فرمت XML  مشاهده می کنیم.

 

فرض می کنیم Database  و Table  مورد نظر ما آماده شده است قدم بعدی نحوه خواندن اطلاعات مربوط به کتاب ها می باشد که در قسمت دوم این مقاله به آن می پردازیم.

و اکنون مثالی دیگر:

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

 

<?xml version=”1.0″ ?>

<Person>

<Name>AraSoft</Name>

<Age>18</Age>

<Sex>Male</Sex>

</Person>

حال لازمه که این اطلاعات که شامل اسم ، سن و… من هست در برنامه استفاده کنیم.پس ابتدا 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 پیدا کردیم.برای آموزش روش استفاده از XML بهتراست که آشنایی مختصری با XML پیدا کنید.

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

 

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

تگها:

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

 

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

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

<? xml version=”1.0″ ?>

حتما به بزرگی و کوچکی حروف دقت کنید. تگ اعلان XML به صورت ؟> و بعد کلمه XML و بعد از آن نوع version که تا کنون آخرین آن “۱٫۰” بوده قرار می گیرد و سپس تگ پایانی آن ؟>.

نوشتن تگها:

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

ذخیره می کنید مثلا برای ذخیره اسمتان:       <Name>AraSoft</Name>

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

Begin: <Name>

End:   </Name>

برای نوشتن تگها باید به این توجه کنید که اسم تگ شروع (<Name>) و اسم تگ پایانی (</Name>) نباید از نظر کوچکی و

بزرگی فرق کند. و نکته مهم این که شما باید XML خود رو با یک تگ اصلی بپوشانید و بقیه تگها را داخل آن قرار دهید مثل:

<? Xml version=”1.0″ ?>

<Root>

<Child1></Child1>

<Child2></Child2>

<Child3/>

</Root>

 

تداخل تگها:

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

 

درست :

<? Xml version=”1.0″ ?>

<root>

<child1/>

</root>

:نادرست

<? Xml version=”1.0″ ?>

<root>

<child1>

</root>

</child1> ß—–Error

تگ پوچ:

شاید در مرور Xml های آمده در مثالهای فوق به این تگ <Child1/> رسیده و تعجب کنید که چرا قانون نوشتن تگها را نقض شده است ولی در حقیقت این خود یک دستور نگارشی است مبنی بر اینکه اگر تگی هیچ مقداری را در بر نمی گیرد بهتر است

به صورت <Name/> نوشته شود “شبیه به HTML” تا به راحتی برسی XML افزوده شود.

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

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

1.<SectionOfSite Language=”Persian”>Home</SectionOfSite>

2.<SectionOfSite Language=”English”>Home</SectionOfSite>

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

این آشنایی کوچکی با XML نویسی بود در ادامه توضیحی درباره کد نویسی آن در VB.Net مطرح می کنم.

یک حالت ساده از خواننده های فایلهای 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)

‘خواندن اسم تگ<Book> localName is Book

MsgBox(“Attribute: ” & Reader.ReadAttributeValue)

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

MsgBox(“Value: ” & Reader.Value)

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

MsgBox(“—<“)

Loop

 

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

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

*در قسمت Depth ؛ اگر تگی در داخلRoot اصلی باشد مقدار ۱ را بر می گرداند و اگریک تگ در داخل این تگ باشد پس مقدار ۲ را بر می گرداند و اگر خود Rootباشدمسلماً مقدار صفر ۰ را بر می گرداند.

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

 

در این قسمت به تعریف یک نوع دیگر از خواننده های 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 کردن فایل کمی تفاوت دارد. مهمترین قسمت این Reader طریقه بازشدن فایل بوسیله XMLNodeReader است چون بقیه قسمتهای NodeReader و TextReader فرق چندانی با هم ندارد. ولی یک Object اضافه بر سازمان در این قسمت برای باز کردن فایل استفاده

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

آشنایی با زبان RSS و نحوه دریافت و مشاهده فایلهای آن در رایانه شخصی

شاید بتوان به جرات گفت که یکی از فرزندان خلف استاندارد XML، زبان RSS می باشد. RSS مخفف کلمات Really SimpleSyndication بوده و در حال حاضر یکی از پرطرفدارترین زبان ها در بین طراحان و برنامه نویسان تحت وب می باشد.

RSS به زبان ساده

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

اطلاعات اجتناب می کرد، بلکه برای بالا بردن Rank سایتها در Search Engine ها نیز بسیار مناسب بود. برای اثبات این ادعا در صورتی که برای مدت کوتاهی در سایتهای مختلف ایرانی و خارجی گشت و گذار نمایید، با تصاویر کوچکی مانند ، مواجه خواهید شد، این تصاویر در واقع لینک هایی به همان فایلهای RSS می باشند. در صورتی که بر روی آنها Click نمایید، یک متن که با استاندارد XML نوشته شده است را مشاهده خواهید نمود. دقت کنید که این فایل و محتوای آن، چندان برای کاربرانی چون شما که همیشه به دنبال زیبایی و خوانایی صفحات می باشید، باب طبع نخواهد بود!، ولی برای دیگر سایت ها، برای استفاده مجدد از محتوای موجود در آنها، بسیار حائز اهمیت می باشد.

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

به عنوان نمونه، آدرس دو سایت را ذکر می کنم که علاقمندان می توانند برنامه های مربوطه را به طور کاملا رایگان! دریافت کرده و بر روی رایانه شخصی خود نصب نمایند. لازم به ذکر است که در آدرس اول، سورس برنامه مربوطه نیز به زبان Net. قابل بارگزاری(Download) می باشند:

یک نظر بگذارید

دسته‌ها
اين سايت را حمايت مي کنم