XML DOM Node စာရင်း
getElementsByTagName() method နှင့် childNodes ပိုင်ဆိုင်မှုဖြင့် ပြန်ပေးသည်
သင်ကိုယ်တိုင်စမ်းကြည့်ပါ - ဥပမာများ
အောက်ပါဥပမာများသည် XML ဖိုင် books.xml ကို အသုံးပြုသည် ။
ဤဥပမာသည် getElementsByTagName() နည်းလမ်းကို "books.xml" ရှိ ပထမဆုံး <title> ဒြပ်စင်မှ စာသားကို ရယူပါ။
ဤဥပမာသည် "books.xml" ရှိ <title> ဒြပ်စင်များအားလုံးကို လှည့်ပတ်ရန် node list နှင့် length property ကို အသုံးပြု၍ node များကို လှည့်ပတ်သည်
ဤဥပမာသည် "books.xml" ရှိ ပထမ <book> ဒြပ်စင်မှ ရည်ညွှန်းချက်ကို ရယူရန် ရည်ညွှန်းချက်စာရင်းကို အသုံးပြုသည်။
DOM Node စာရင်း
childNodes သို့မဟုတ် getElementsByTagName() ကဲ့သို့သော ဂုဏ်သတ္တိများ သို့မဟုတ် နည်းလမ်းများကို အသုံးပြုသည့်အခါ node list object တစ်ခုကို ပြန်ပေးသည်။
node list object သည် XML တွင်ကဲ့သို့ အစဉ်လိုက်အတိုင်း node များစာရင်းကို ကိုယ်စားပြုသည်။
node များစာရင်းရှိ Node များကို 0 မှစတင်၍ အညွှန်းနံပါတ်များဖြင့်ဝင်ရောက်ကြည့်ရှုသည်။
အောက်ပါပုံသည် " books.xml " ရှိ <title> အစိတ်အပိုင်းများ၏ node စာရင်းကို ကိုယ်စားပြုသည်-
"books.xml" ကို variable xmlDoc တွင် တင်ထားသည်ဆိုပါစို့။
ဤကုဒ်အပိုင်းအစသည် "books.xml" ရှိ ခေါင်းစဉ်အစိတ်အပိုင်းများ၏ node စာရင်းကို ပြန်ပေးသည်-
x = xmlDoc.getElementsByTagName("title");
အထက်ဖော်ပြပါ ထုတ်ပြန်ချက်ကို အကောင်အထည်ဖော်ပြီးနောက် x သည် node list object တစ်ခုဖြစ်သည်။
အောက်ပါ ကုဒ်အပိုင်းအစသည် node စာရင်း (x) ရှိ ပထမ <title> ဒြပ်စင်မှ စာသားကို ပြန်ပေးသည်-
ဥပမာ
var txt = x[0].childNodes[0].nodeValue;
အထက်ဖော်ပြပါ ကြေညာချက်ကို အကောင်အထည်ဖော်ပြီးနောက် txt = "နေ့စဉ် အီတလီ"။
Node List Length
node list object သည် သူ့ကိုယ်သူ အပ်ဒိတ်ဖြစ်စေသည်။ ဒြပ်စင်တစ်ခုကို ဖျက်လိုက်လျှင် သို့မဟုတ် ပေါင်းထည့်ပါက၊ စာရင်းကို အလိုအလျောက် အပ်ဒိတ်လုပ်မည်ဖြစ်သည်။
node စာရင်းတစ်ခု၏ အရှည်ပိုင်ဆိုင်မှုသည် စာရင်းရှိ node အရေအတွက်ဖြစ်သည်။
ဤကုဒ်အပိုင်းအစသည် "books.xml" ရှိ <title> အစိတ်အပိုင်းများ၏ အရေအတွက်ကို ပြန်ပေးသည်-
x = xmlDoc.getElementsByTagName('title').length;
အထက်ဖော်ပြပါကြေညာချက်ကို အကောင်အထည်ဖော်ပြီးနောက် x ၏တန်ဖိုးသည် 4 ဖြစ်လိမ့်မည်။
node list ၏ အရှည်ကို list အတွင်းရှိ element အားလုံးကို loop ပတ်ရန် အသုံးပြုနိုင်သည်။
ဤကုဒ်အပိုင်းအစသည် <title> ဒြပ်စင်များစာရင်းကို လှည့်ပတ်ရန် အရှည်ပိုင်ဆိုင်မှုကို အသုံးပြုသည်-
ဥပမာ
x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i <xLen; i++) {
txt += x[i].childNodes[0].nodeValue) + " ";
}
အထွက်-
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
ဥပမာ ရှင်းပြထားသည်
- " books.xml " ကို xmlDoc တွင် တင်ထားသည်ဆိုပါစို့
- ခေါင်းစဉ်ဒြပ်စင်အားလုံး၏ node စာရင်းကိုထိန်းထားရန် x variable ကို သတ်မှတ်ပါ။
- <title> ဒြပ်စင်များမှ စာသား node တန်ဖိုးများကို စုဆောင်းပါ။
DOM ရည်ညွှန်းချက်စာရင်း (အမည်ပေးထားသော Node မြေပုံ)
ဒြပ်စင် node တစ်ခု၏ ရည်ညွှန်းချက် ပိုင်ဆိုင်မှုသည် attribute node များစာရင်းကို ပြန်ပေးသည်။
၎င်းကို အမည်ပေးထားသော node map ဟုခေါ်ပြီး နည်းလမ်းများနှင့် ဂုဏ်သတ္တိများ ကွဲပြားမှုအချို့မှလွဲ၍ node list နှင့် ဆင်တူသည်။
ရည်ညွှန်းချက်စာရင်းသည် သူ့ကိုယ်သူ အပ်ဒိတ်ဖြစ်စေသည်။ ရည်ညွှန်းချက်တစ်ခုကို ဖျက်လိုက်လျှင် သို့မဟုတ် ထပ်ထည့်ပါက၊ စာရင်းကို အလိုအလျောက် အပ်ဒိတ်လုပ်မည်ဖြစ်သည်။
ဤကုဒ်အပိုင်းအစသည် "books.xml" ရှိ ပထမ <book> ဒြပ်စင်မှ attribute node များစာရင်းကို ပြန်ပေးသည်-
x = xmlDoc.getElementsByTagName('book')[0].attributes;
အထက်ဖော်ပြပါ ကုဒ်ကို လုပ်ဆောင်ပြီးနောက်၊ x.length = ရည်ညွှန်းချက် အရေအတွက်ဖြစ်ပြီး x.getNamedItem() အား attribute node တစ်ခုသို့ ပြန်သွားရန် အသုံးပြုနိုင်သည်။
ဤကုဒ်အပိုင်းအစသည် စာအုပ်တစ်အုပ်၏ "အမျိုးအစား" ရည်ညွှန်းချက်နှင့် ဂုဏ်ရည်တော်အရေအတွက်တို့ကို ရရှိသည်-
ဥပမာ
x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;
အထွက်-
cooking
1
ဥပမာ ရှင်းပြထားသည်
- " books.xml " ကို xmlDoc တွင် တင်ထားသည်ဆိုပါစို့
- ပထမ <book> ဒြပ်စင်၏ ဂုဏ်ရည်များစာရင်းကို ထိန်းသိမ်းရန် x variable ကို သတ်မှတ်ပါ။
- "အမျိုးအစား" ရည်ညွှန်းချက်၏တန်ဖိုးနှင့် အရည်အချင်းစာရင်း၏အရှည်ကို ရယူပါ။