צעדים ראשונים ב-XML

‏ • 13 באפריל, 2002



XML היא שפה המשמשת לשמירת מידע. המידע נשמר בין תגיות. תגי ה-XML
אינם מוגדרים מראש, ועלינו להגדיר בעצמנו את התגים שנשתמש בהם. בעזרת
ASP אנו יכולים לשלוף מידע ממסד נתונים ולהציג אותו כXML.

אז למה אנו צריכים את זה?

מסד הנתונים הוא קבוע ואינו פועל תחת מערכת אחרת (כלומר אם אנחנו משתמשים באקסס אנו חייבים שגם למי שאנו רוצים להעביר את המידע יהיה אקסס, אם אנו משתמשים ב- SQL-SERVER …)

מסמך XML ניתן לפתוח בכל עורך טקסט פשוט, כמו NOTPAD, או להציג אותו דרך הדפדפן ללא שום תלות במערכת מסד הנתונים.

סיבה שנייה וחשובה לא פחות היא שאנו יכולים לבצע פעולות של שליפה, הכנסה והוצאתנתונים ביתר מהירות מאשר ב-ASP. יש לזכור כי XML אינה בעצם שפה, אלא שיטה לאחסון נתונים בתוך תגים שנראים כמו תגי HTML.

אז איך עושים את זה?

ניתן לכתוב אילו תגים שרוצים, אך יש להקפיד על כמה חוקים:

לכל תג XML חייב להיות Root Element, זאת אומרת תג שייפתח בהתחלה ובסוף.

גם לכל תג פנימי חייב להיות סוגר.

Root Element היא בעצם התגית המרכזית המגדירה את כל ה"עץ" .

הנה הקוד, ואחריו יבואו ההסברים:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27  

<%@ Language=VBScript %>
<%Response.ContentType="text/xml"%>

<?xml version="1.0"?>
<?xmlstylesheet type="text/css" href="Styles.css"?>

<%
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
%>

<Customers>

<%do until MyRS.EOF%>
    <Customer ID="<%=MyRS("CustomerID")%>">
        
<Phone><%=MyRS("Phone")%></Phone>
        
<CompanyName><%=MyRS("CompanyName")%></CompanyName>
    </Customer>

<%MyRS.Movenext%>
<%loop%>

</Customers>


אני עובדים על מסד הנתונים של Northwind הנמצא בכל מחשב שיש בו אופיס.

אתם יכולים לעבוד על כל מסד נתונים שאתם רוצים רק בזהירות…

קודם כל, נפתח מסמך ASP (את השורה הזאת אני מקווה שלא צריך להסביר….)

<%@ Language=VBScript %>

נכריז על המיסמך כ-XML

<%Response.ContentType="text/xml"%>

ונהפוך אותו למסמך XML חוקי

<?xml version="1.0"?>

אם אנו רוצים לעצב את המסמך, זהו הזמן:

<?xml-stylesheet type="text/css" href="Styles.css"?>

עכשיו מתחיל החלק המוכר: אנו יוצרים דף ASP רגיל. נתחיל מאובייקט החיבור:

ניצור משתנה בשם dsn שיכיל את הקשר למסד הנתונים (במקרה הזה SQL SERVER)


1
2
3
4
5
6  

<%
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 אליו.

dsn="DRIVER={Microsoft Access Driver (*.mdb)};
dbq=" & Server.MapPath ("northwind.mdb")

כעת ניצור את ה-Recordset שיכיל את הנתונים, ונפתח אותו:

set MyRS=Server.CreateObject("ADODB.recordset")
MyRS.Open "select CustomerID,CompanyName,Phone from customers", MyConn

לצורך הדוגמא נוציא מטבלת לקוחות custemers את שם החברה, הטלפון, והמספר המזהה של הלקוח. אם אתם עובדים על מסד נתונים משלכם תשלפו את הנתונים שאתם רוצים מתוך טבלה כלשהיא.



XML בעצם בנוי כמו מערך נתונים, בצורת עץ אובייקטים שדומה לכתיבת HTML. כעת ניצור את תגית השורש:

<Customers>

נפתח לולאה שתרוץ עד סוף הטבלה

<%do until MyRS.EOF%>

נפתח את התגית הראשונה ונכניס לתוכה את העמודה הנכונה. אם אתם עובדים על מסד נתונים שלכם יש לתת לתגית שם מתאים כדי שתבינו מה אתם עושים.

זיכרו, xml היא שפה לשמירת מידע, אז אנא לא לקרוא לתגית שלכם danny (:

שם התגית צריך לאפיין את מה שהיא מכילה.

<Customer ID="<%=MyRS("CustomerID")%>">
<Phone><%=MyRS("Phone")%></Phone>
<CompanyName><%=MyRS("CompanyName")</CompanyName>
</Customer>

נקדם את הרקורדסט באחד

<%MyRS.Movenext%>

וניסגור את הלולאה

<%loopF%>

נסגור את תגית השורש

</Customers>

שימו לב שלתגית Customer, ישנו מאפיין (attribute) המכיל את ה-ID של הלקוח. חשוב מאוד להקפיד על המרכאות מסביב למאפיינים.

XML הינה Case Sensitive, לכן התגיות צריכות להיות כתובות בדיוק אותו הדבר. כלומר, אם פתחתי את התגית

<CompanyName>

והשתמשתי באותיות גדולות אני גם אסגור בדיוק כך:

</CompanyName;

בנוסף, אין להשאיר אף תגית פתוחה. תגית שאין לה תג סוגר מתאים, תגרור שגיאה.

אז מה עושים עם זה?

זהו עכשיו יש לכם מסמך .xml
מה תעשו איתו זה כבר נושא למאמר הבא…


  • אפשר לעצב אותו עם CSS או עם ,XSL
  • אפשר להמיר אותו ל-WAP
  • אפשר לשלוח לדפוס


אפשר לעשות איתו מה שאתם רוצים כמעט בכל הפלטפורמות


בהצלחה!

תגיות:

תגובות בפייסבוק