בחזרה לעמוד הבית

Flash actionscript xml object reference

 

תיאור

 

יצירת אובייקט xml חדש . ניתן להשתמש ב-constructor ב-2 דרכים .

דוגמא :

Myxml=new XML();

Myxml=new XML(“<member><user>gadi</user><pass>f5pro</pass></member>”);

New XML();

 

Reading methods

שיטת קריאה בלבד .

מחזירה true/false האם ל-node הנוכחי יש עוד nodes .

דוגמא :

myxml=new XML("<member><user>gadi</user><pass>f5pro</pass></member>");

rootchild=myxml.firstChild;

rootchildname=rootchild.nodeName;

trace(rootchildname);

trace(rootchild.hasChildNodes());

 

output-

member

true

HasChildNodes()

טעינת מסמך xml לאובייקט החדש שיצרנו .

דוגמא:

myxml=new XML();

myxml.load("Products.xml");

Load()

פונקציה הנקראת בזמן טעינת מסמך xml  בשיטת load או send and load .

דוגמא :

 myxml=new XML();

myxml.load("Products.xml");

myxml.onload=translate;

function translate(){

//processing the file

}

OnLoad()

מנתח ארגומנט ומעביר אותו לאובייקט xml .  במקרה שהאובייקט מכיל נתונים , הוא מוחק אותם .

דוגמא :

myxml=new XML();

myxml.parseXML("<members><user>gadi</user><pass>f5pro</pass></members>");

rootchild=myxml.firstChild.nodeName;

trace(rootchild);

myxml.parseXML("<member><user>gadi</user><pass>f5pro</pass></member>");

rootchild=myxml.firstChild.nodeName;

trace(rootchild);

 

output-

members

member

ParseXML()

הופך אובייקט xml למחרוזת כולל התגיות.

דוגמא:

myxml=new XML();

myxml.parseXML("<members><user>gadi</user><pass>f5pro</pass></members>");

userchild=myxml.firstChild.firstChild.toString();

trace(userchild);

 

output-

<user>gadi</user>

ToString()

 

Writing methods

הוספת child לסוף רשימת ה-childs של האובייקט .

דוגמא :

myxml=new XML();

myxml.parseXML("<members><user>gadi</user><pass>f5pro</pass></members>");

newchild=new XML("<user>daniel</user><pass>vba</pass>");

addchild=myxml.firstChild.appendChild(new child);

full=myxml.toString();

trace(full);

 

output-

<members><user>gadi</user><pass>f5pro</pass>("<user>daniel</user>_

<pass>vba</pass></members>

appendChild()

יצירת אובייקט xml חדש , שהוא העתק של אובייקט ה-xml הנבחר .

דוגמא :

myxml=new XML();

myxml.parseXML("<members><user>gadi</user><pass>f5pro</pass></members>");

myxmlstr=myxml.toString();

cloning=myxml.firstChild.cloneNode(true);

trace(cloning.toString());

cloning2=myxml.firstChild.cloneNode(false);

trace(cloning2.toString());

 

output-

<members><user>gadi</user><pass>f5pro</pass></members>

<members />

CloneNode()

יצירת אלמנט חדש אשר מוחזר למשתנה . צריך לבצע חיבור ביניהם על ידי appendChild .

דוגמא :

doc=new XML();

base1=new XML();

//define the element name

base=doc.createElement("user");

//define the text inside

text=base1.createTextNode("gadi");

base.appendChild(text);

//attach together

doc.appendChild(base);

trace(doc.toString());

 

output-

<user>gadi</user>

CreateElement()

הוספת טקסט לתוך אלמנט , מוחזרת למשתנה שמקבל אותה . ר' דוגמא קודמת .

CreateTextNode()

הוספת node לאובייקט xml לפני node קיים .

דוגמא :

root=new XML();

doc1=new XML();

base1=new XML();

doc=root.createElement("member");

base=doc1.createElement("user");

base2=doc1.createElement("pass");

text=base1.createTextNode("gadi");

base.appendChild(text);

text2=base1.createTextNode("f5pro");

base2.appendChild(text2);

doc.appendChild(base);

doc.insertBefore(base2,base);

root.appendChild(doc);

trace(doc.toString());

 

output-

<member><pass>f5pro</pass><user>gadi</user></member>

InsertBefore()

הסרת node מאובייקט ה-xml הנוכחי שלו .

דוגמא :

root=new XML();

doc1=new XML();

base1=new XML();

doc=root.createElement("member");

base=doc1.createElement("user");

base2=doc1.createElement("pass");

text=base1.createTextNode("gadi");

base.appendChild(text);

text2=base1.createTextNode("f5pro");

base2.appendChild(text2);

doc.appendChild(base);

doc.insertBefore(base2,base);

root.appendChild(doc);

trace(root.toString());

base2.removeNode();

trace(root.toString());

 

output-

<member><pass>f5pro</pass><user>gadi</user></member>

<member><user>gadi</user></member>

RemoveNode()

שליחת מסמך ה-xml ל-url אחר , עם אפשרות שליטה בחלון . השליחה מתבצעת ב-post .

דוגמא :

Myxml.send(“myasp.asp”);

Myxml.send(‘myasp.asp”,”_blank”);

Send()

שליחת מסמך xml וקבלת מידע מהשרת לאובייקט xml חדש .

דוגמא :

Myxml.sendAndLoad(“myasp.asp”,mynewxml);

SendAndLoad()

 

properties

קביעה והחזרה של ה-doctype של המסמך .

דוגמא :

Myxml=new XML("<member><user>gadi</user><pass>f5pro</pass></member>");

Myxml.docTypeDecl="<!DOCTYPE member SYSTEM 'mem.dtd'>";

trace(Myxml);

 

output-

<!DOCTYPE member SYSTEM 'mem.dtd'> <member><user>gadi</user><pass>f5pro</pass></member>

docTypeDecl

מאפיין (read only) , המחזיר את ה-child הראשון של ה-node הנוכחי .

דוגמא :

Myxml=new XML("<member><user>gadi</user><pass>f5pro</pass></member>");

fname=Myxml.firstChild.nodeName;

trace(fname);

 

output-

member

firstChild

מאפיין (read only) , המחזיר את ה-child האחרון של ה-node הנוכחי .

דוגמא :

Myxml=new XML("<member><user>gadi</user><pass>f5pro</pass></member>");

fname=Myxml.firstChild.lastChild.nodeName;

trace(fname);

 

output-

pass

lastChild

מאפיין (read only) , המחזיר true במקרה שהמסמך סיים להטען .

דוגמא :

If(Myxml.loaded){

            GotoAndStop(“process”);

}

loaded

מחזיר את האח הבא של ה-node הנוכחי . מחזיר null במקרה שלא קיים .

דוגמא :

Myxml=new XML("<member><user>gadi</user><pass>f5pro</pass></member>");

fname=Myxml.firstChild.firstChild.nextSibling;

trace(fname);

 

output-

<pass>f5pro</pass>

nextSibling

שם ה-node הנוכחי .

דוגמא :

Myxml=new XML("<member><user>gadi</user><pass>f5pro</pass></member>");

fname=Myxml.firstChild.firstChild.nodeName;

trace(fname);

 

output-

user

nodeName

מחזיר את סוג ה-node הנוכחי על פי קוד מספרי.

סוג node

קוד

element

1

attribute

2

text

3

Cdata

4

entity

5

אזכור entity

6

Processing info

7

comment

8

Document

9

doctype

10

קטע מסמך

11

mark

12

דוגמא :

myxml=new XML("<member><user>gadi</user></member>");

trace(myxml.firstChild.firstChild.nodeType);

trace(myxml.firstChild.firstChild.firstChild.nodeType);

 

output-

1

3

nodeType

מחזיר את ערך ה-node של אובייקט xml . אם הוא אלמנט , הערך יהיה null .

דוגמא :

myxml=new XML("<member><user>gadi</user></member>");

trace(myxml.firstChild.firstChild.firstChild.nodeValue);

 

output-

gadi

nodeValue

נותן reference ל-parent של אובייקט ה-xml הנוכחי .

דוגמא :

myxml=new XML("<member><user>gadi</user></member>");

trace(myxml.firstChild.firstChild.parentNode.nodeName);

 

output-

member

parentNode

נותן reference לאח הקודם של אובייקט ה-xml הנוכחי . ר' nextSibling .

previousSibling

מחזיר קוד מספרי לבדיקה האם מסמך ה-xml הותאם לאובייקט ה-xml .

מצב

קוד

העברה בוצעה בהצלחה

0

Cdata לא הסתיים כראוי

2-

הגדרת xml לא הסתיימה כראוי

3-

הצהרת doctype לא הסתיימה כראוי

4-

הערה לא הסתיימה כראוי

5-

אלמנט פגום

6-

Out of memory

7-

תכונה לא הסתיימה כראוי

8-

תג התחלה לא מותאם לתג סיום

9-

תג סיום ללא תג התחלה תואם

10-

status

קובע ומחזיר את הצהרת xml .

דוגמא :

Myxml=new XML("<member><user>gadi</user><pass>f5pro</pass></member>");

Myxml.xmlDecl="<?xml version='1.0' ?>";

trace(Myxml);

 

output-

<?xml version=’1’ ?>

<member><user>gadi</user><pass>f5pro</pass></member>

XmlDecl

 

Collections

מחזיר מערך שמכיל את כל ה-attributes של node מסויים .

דוגמא :

Myxml=new XML("<member><userid=’1’>gadi</user><pass>f5pro</pass></member>");

user=Myxml.firstChild.firstChild;

y=user.attributes.id;

trace(y);

user.attributes.email="gadi@flash5pro.com";

trace(user);

 

output-

1

<user email="gadi@flash5pro.com" id="1">gadi</user>

 

לא ניתן לרוץ במערך כדי למצוא את כל שמות ה- attributes .

הסקריפט הבא מוצא את ה-attributes והערכים שלהם :

Myxml=new

XML("<member><user id='1'>gadi</user><pass>f5pro</pass></member>");

user=Myxml.firstChild.firstChild;

st=user.toString().indexOf(" ");

end1=user.toString().indexOf('"',st);

end2=user.toString().indexOf('"',end1+1);

att1=user.toString().substring(st+1,(end1-1));

val1=user.toString().substring(end1+1,(end2));

trace(att1+"="+val1);

 

output-

id=1

Attributes[]

מחזיר מערך שמכיל את כל ה-nodes באובייקט xml הנוכחי .

דוגמא :

attarray=new Array();

Myxml=new

 XML("<member><user id='1'>gadi</user><pass>f5pro</pass></member>");

user=Myxml.firstChild;

attarray=user.childNodes;

trace(attarray[0].nodeName);

trace(attarray[1].nodeName);

 

output-

user

pass

 

אם ה-nodeType=3  , ה-nodeName יהיה שווה ל-null .

childNodes

 

את המסמך הכנתי בתקופה שרציתי להבין יותר טוב את הסינטקס והשימוש באובייקט xml בפלאש . אני מקווה שאנשים ימצאו

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

להשתמש בו מעבר ללימוד אישי מוזמן לפנות אלי (mailto:gadi.sr@gmail.com) ונדון בנושא .