XML זוהי שפה בה אנו משתמשים בכדי לשמור מידע. המידע נשמר בין תגיות. תגי ה-XML
אינם מוגדרים מראש. עליך להגדיר בעצמך את התגים שתשתמש בהם. בעזרת
ASP אנו יכולים לשלוף מידע ממסד נתונים ולהציג אותו כXML.
כאן נשאלת השאלה למה אנו צריכים זאת?
מסד הנתונים הוא קבוע ואינו פועל תחת מערכת אחרת (כלומר אם אני משתמש באקסס אני חייב שגם למי שאני רוצה להעביר את המידע יהיה אקסס או אם אני משתמש
SQL-SERVER ב … תבינו לבד)
XML באני פותח בכל בNOTPAD או מציג דרך הדפדפן ואין לי תלות במערכת מסד הנתונים.
סיבה שנייה וחשובה לא פחות היא שאני מבצע פעולות של שליפה הכנסה והוצאה של נתונים ביתר מהירות
(ASP.וקלות כשמתרגלים) מאשר ביש לזכור כי המיסמך XML זוהי אינה בעצם שפה, זוהי בעצם שיטה להכיל נתונים
בתוך Tags שנראים כמו HTML.ניתן לכתוב איזה Tagsשרוצים, אך יש כמה חוקים לשמור
על XML שהוא Well-Formed.XML שהוא לא Well-Formed הוא לא XML.
לכל XML חייב להיות Root Element, זאת אומרת Tag שייפתח
בהתחלה ובסוף. גם כך לכל Tag פנימי חייב להיות סוגר.
Root Element,זהו בעצם התגית המרכזית שם כל ה"עץ" .
קצת קוד...
<%@ Language=VBScript %>
<%Response.ContentType="text/xml"%>
<%
dim dsn="Provider=SQLOLEDB;Data Source=(local);Initial Catalog=NorthWind;User ID=sa;password="
set MyConn=Server.CreateObject("ADODB.connection")
MyConn.Open dsn
set MyRS=Server.CreateObject("ADODB.recordset")
MyRS.Open "select CustomerID,CompanyName,Phone from customers",MyConn
%>
<%do until MyRS.EOF%>
">
<%=MyRS("Phone")%>
<%=MyRS("CompanyName")
<%MyRS.Movenext
loop
%>
אנו עובדים על מסד הנתונים של Northwind שנימצא בכל מחשב שיש בו אופיס
אתם יכולים לעבוד על כל מסד נתונים שאתם רוצים רק בזהירות...
קודם כל נפתח מסמך ASP (את השורה הזאת אני מקווה שלא צריך להסביר….)
<%@ Language=VBScript %>
נכריז על המיסמך כ XML
Response.ContentType="text/xml"
ונהפוך אותו למסמך XML חוקי
אם אני רוצה לעצב אותו זה הזמן
עכשיו מתחיל החלק המוכר: אנו יוצרים מ ASP רגיל. נתחיל מאובייקט ה CONNECTION:
ניצור משתנה בשם dsn שהוא יכיל את הקשר למסד הנתונים (במיקרה הזה SQL SERVER)
dim dsn="Provider=SQLOLEDB;Data Source=(local);Initial Catalog=NorthWind;User ID=sa;password="
set MyConn=Server.CreateObject("ADODB.connection")
MyConn.Open dsn
כרגע יש לנו אובייקט שניקרא MyConn המקושר למסד הנתונים של Northwind
אם אתם משתמשים באקסס צרו לכם את הקשר המתאים
dsn="DRIVER={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath ("northwind.mdb")
אם אתם עובדים על מסד נתונים משלכם צרו dsn אליו
כעת ניצור את ה Recordset שיכיל את הנתונים
set MyRS=Server.CreateObject("ADODB.recordset")
MyRS.Open "select CustomerID,CompanyName,Phone from customers", MyConn
לצורך הדוגמא נוציא מטבלת לקוחות costemers את שם החברה , הטלפון והמיספר המזהה של הלקוח
אם אתם עובדים על מסד נתונים משלכם תשלפו את הנתונים שאתם רוצים מתוך טבלה כלשיא
XML בעצם בנוי כמו מערך נתונים, בצורת עץ אובייקטים שדומהלכתיבת HTML.
כעת ניצור את תגית השורש
נפתח לולאה שתרוץ עד סוף הטבלה
do until MyRS.EOF
נפתח את התגית הראשונה ונכניס לתוכה את הכמודה הנכונה
אם אתם עובדים על מסד נתונים שלכם תנו לתגית שם מתאים בגלל ש:קודם כל תבינו מה אתם עושים וגם זיכרו xml זוהי שפה לשמירת מידע אז אנא לא לקרוא לתגית שלכם danny
או משהו כזה שם התגית צריך לאפיין את מה שהיא מכילה
">
< %=MyRS("Phone")%>
< %=MyRS("CompanyName")
נקדם את הלולאה באחד
MyRS.Movenext
וניסגור אותה
loop
נסגורת את תגית השורש
שימו לב כאן יצרתי ATTRIBUTE וחשוב מאוד להקפיד על המרכאות אל תשכחו התגיות צריכות להיות כתובות בדיוק אותו הדבר אז אם ב
השתמשתי באותיות גדולות אני גם אסגור אותה כך
אם אתם עובדים על מסד נתונים משלכם זה יראה ככה
<שם תגית השורש שלכם>
לולאה
do until MyRS.EOF
< שם התגית הראשונה ID="< %=MyRS("שם הרשומה הרצויה")%>">
< שם התגית השניה>< %=MyRS("שם התגית השניה")%>
סגירת התגית>
< שם התגית שלישית>< %=MyRS("שם התגית שלישית")%>
סגירת התגית>
וכן הלאה כמה תגיות שתירצו (בד"כ לפי מספר הרשומות בטבלה)
קידום הלולאה
MyRS.Movenext
סגירתה
loop
סגירת תגית השורש>
אל תשכחו לסגור כל תגית אותה פתחתם ואת תגית השורש כמובן
זהו עכשיו יש לכם מסמך xml מה תעשו איתו זה כבר בעייה שלכם ) ועל זה במאמר הבא):
אפשר לעצב עם CSS או עם XSL אפשר להמיר ל WAP או לשלוח לדפוס פשוט מה שאתם רוצים כמעט בכל הפלטפורמות
בהצלחה לכל שאלה או בעייה ניתן לפנות אלי
|