XML ကျူတိုရီရယ်

XML ပင်မစာမျက်နှာ XML နိဒါန်း XML အသုံးပြုပုံ XML သစ်ပင် XML Syntax XML ဒြပ်စင်များ XML အရည်အချင်းများ XML Namespaces XML မျက်နှာပြင် XML Http တောင်းဆိုချက် XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLink XML စစ်ဆေးခြင်း XML DTD XML Schema XML ဆာဗာ XML နမူနာများ XML Quiz XML လက်မှတ်

XML AJAX

AJAX နိဒါန်း AJAX XMLHttp AJAX တောင်းဆိုချက် AJAX တုံ့ပြန်မှု AJAX XML ဖိုင် AJAX PHP AJAX ASP AJAX ဒေတာဘေ့စ် AJAX အပလီကေးရှင်းများ AJAX ဥပမာများ

XML DOM

DOM နိဒါန်း DOM Nodes DOM အသုံးပြုခြင်း DOM Node အချက်အလက် DOM Node စာရင်း DOM လမ်းလျှောက်ခြင်း။ DOM လမ်းကြောင်းပြခြင်း။ DOM တန်ဖိုးများရယူပါ။ DOM Change Nodes DOM သည် Nodes များကို ဖယ်ရှားပါ။ DOM သည် Nodes များကို အစားထိုးပါ။ DOM သည် Nodes ကိုဖန်တီးပါ။ DOM Add Nodes DOM Clone Nodes DOM ဥပမာများ

XPath ကျူတိုရီရယ်

XPath နိဒါန်း XPath Nodes XPath Syntax XPath Axes XPath အော်ပရေတာများ XPath ဥပမာများ

XSLT ကျူတိုရီရယ်

XSLT မိတ်ဆက် XSL ဘာသာစကားများ XSLT အသွင်ပြောင်း XSLT < template> XSLT <value-of> XSLT <for-every> XSLT <sort> XSLT <if> XSLT <choose> XSLT လျှောက်ထားပါ။ Client ပေါ်ရှိ XSLT ဆာဗာပေါ်ရှိ XSLT XSLT တည်းဖြတ် XML XSLT နမူနာများ

XQuery ကျူတိုရီရယ်

XQuery နိဒါန်း XQuery ဥပမာ XQuery FLWOR XQuery HTML XQuery စည်းမျဥ်းများ XQuery Syntax XQuery Add XQuery ကို ရွေးပါ။ XQuery လုပ်ဆောင်ချက်များ

XML DTD

DTD နိဒါန်း DTD ဆောက်လုပ်ရေးလုပ်ကွက်များ DTD ဒြပ်စင်များ DTD အရည်အချင်းများ DTD ဒြပ်စင်များနှင့် Attr DTD အဖွဲ့အစည်းများ DTD ဥပမာများ

XSD Schema

XSD မိတ်ဆက် XSD လုပ်နည်း XSD <schema> XSD ဒြပ်စင်များ XSD ရည်ညွှန်းချက်များ XSD ကန့်သတ်ချက်များ

XSD Complex

XSD ဒြပ်စင်များ XSD ဗလာ XSD ဒြပ်စင်များသာ XSD စာသားသီးသန့် XSD ရောနှောထားသည်။ XSD အညွှန်းကိန်းများ XSD <any> XSD <anyAttribute> XSD အစားထိုးခြင်း။ XSD ဥပမာ

XSD ဒေတာ

XSD ကြိုး XSD ရက်စွဲ XSD ဂဏန်း XSD ထွေ XSD အကိုးအကား

ဝဘ် ဝန်ဆောင်မှုများ

XML ဝန်ဆောင်မှုများ XML WSDL XML ဆပ်ပြာ XML RDF XML RSS

ကိုးကား

DOM Node အမျိုးအစားများ DOM Node DOM NodeList DOM အမည်ရှိNodeMap DOM စာရွက်စာတမ်း DOM ဒြပ်စင် DOM ရည်ညွှန်းချက် DOM စာသား DOM CDATA DOM မှတ်ချက် DOM XMLHttp တောင်းဆိုချက် DOM Parser XSLT ဒြပ်စင်များ XSLT/XPath လုပ်ဆောင်ချက်များ

XML DOM Traverse Node Tree


Traversing ဆိုသည်မှာ node tree ကိုဖြတ်၍ လှည့်ပတ်ခြင်း သို့မဟုတ် ခရီးသွားခြင်း ကို ဆိုလိုသည်။


Node Tree ကိုဖြတ်လျှောက်ခြင်း။

ဥပမာ- ဒြပ်စင်တစ်ခုစီ၏တန်ဖိုးကို ထုတ်ယူလိုသောအခါတွင် သင်သည် XML စာရွက်စာတမ်းကို မကြာခဏ ကွင်းဆက်လိုသည်။

၎င်းကို "Node tree ကိုဖြတ်ကူးခြင်း" ဟုခေါ်သည်။

အောက်ဖော်ပြပါ ဥပမာသည် <book> ၏ ကလေး node အားလုံးကို လှည့်ပတ်ပြီး ၎င်းတို့၏ အမည်များနှင့် တန်ဖိုးများကို ပြသသည်-

ဥပမာ

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var x, i ,xmlDoc;
var txt = "";
var text = "<book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book>";

parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");

// documentElement always represents the root node
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length ;i++) {
    txt += x[i].nodeName + ": " + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;
</script>

</body>
</html>

အထွက်-

title: Everyday Italian
author: Giada De Laurentiis
year: 2005

ဥပမာ ရှင်းပြထားသည်-

  1. XML စာကြောင်းကို xmlDoc တွင် တင်ပါ။
  2. အမြစ်ဒြပ်စင်၏ ကလေးဆုံမှတ်များကို ရယူပါ။
  3. ကလေး node တစ်ခုစီအတွက်၊ node အမည်နှင့် စာသား node ၏ node တန်ဖိုးကို ထုတ်ပေးပါ။


DOM ခွဲခြမ်းစိတ်ဖြာခြင်းရှိ ဘရောက်ဆာ ကွာခြားချက်များ

ခေတ်မီဘရောက်ဆာများအားလုံး W3C DOM သတ်မှတ်ချက်ကို ပံ့ပိုးပေးသည်။

သို့သော်လည်း ဘရောက်ဆာများကြားတွင် ကွဲပြားမှုအချို့ရှိသည်။ အရေးကြီးသော ခြားနားချက်တစ်ခုမှာ-

  • အဖြူကွက်များနှင့် လိုင်းအသစ်များကို ကိုင်တွယ်ပုံ

DOM - White Spaces နှင့် New Lines

XML သည် node များကြားတွင် စာကြောင်းအသစ် သို့မဟုတ် နေရာလွတ်အက္ခရာများပါရှိသည်။ Notepad ကဲ့သို့ ရိုးရှင်းသော တည်းဖြတ်သူမှ စာရွက်စာတမ်းအား တည်းဖြတ်သောအခါတွင် ထိုသို့ဖြစ်လေ့ရှိသည်။

အောက်ပါဥပမာတွင် (Notepad မှတည်းဖြတ်သည်) တွင် စာကြောင်းတစ်ခုစီနှင့် ကလေး node တစ်ခုစီ၏ရှေ့တွင် နေရာနှစ်ခုကြားရှိ CR/LF (စာကြောင်းအသစ်) ပါရှိသည်။

<book>
  <title>Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

Internet Explorer 9 နှင့် အစောပိုင်းတွင် အခြားဘရောက်ဆာများက လုပ်ဆောင်နေချိန်တွင် အလွတ်အဖြူကွက်များ သို့မဟုတ် လိုင်းအသစ်များကို စာသား node များအဖြစ် မဆက်ဆံပါ။

အောက်ပါဥပမာသည် root element ( book.xml ) ၏ကလေး node အရေအတွက်ကိုထုတ်ပေးလိမ့်မည်။ IE9 နှင့် အစောပိုင်းတွင် IE10 နှင့် နောက်ပိုင်းဗားရှင်းများတွင် ကလေး node 4 ခုကို ထုတ်မည်ဖြစ်ပြီး၊ အခြားဘရောက်ဆာများသည် ကလေး node 9 ခုကို ထုတ်ပါမည်-

ဥပမာ

function myFunction(xml) {
var xmlDoc = xml.responseXML;
    x = xmlDoc.documentElement.childNodes;
    document.getElementById("demo").innerHTML =
    "Number of child nodes: " + x.length;
}

PCDATA - ပိုင်းခြားထားသော ဇာတ်ကောင်ဒေတာ

XML ခွဲခြမ်းစိတ်ဖြာသူများသည် ပုံမှန်အားဖြင့် XML စာရွက်စာတမ်းတစ်ခုရှိ စာသားအားလုံးကို ခွဲခြမ်းစိတ်ဖြာသည်။

XML ဒြပ်စင်တစ်ခုကို ခွဲခြမ်းစိပ်ဖြာသောအခါ၊ XML တဂ်များကြားရှိ စာသားကိုလည်း ခွဲခြမ်းစိတ်ဖြာသည်-

<message>This text is also parsed</message>

<name> ဒြပ်စင်တွင် အခြားဒြပ်စင်နှစ်ခု (ပထမနှင့် နောက်ဆုံး) ပါ၀င်သော ဤဥပမာတွင်ကဲ့သို့ အခြားသောဒြပ်စင်များပါရှိနိုင်သောကြောင့် ခွဲခြမ်းစိတ်ဖြာသူသည် ၎င်းကိုပြုလုပ်သည်။

<name><first>Bill</first><last>Gates</last></name>

နှင့် parser သည် ၎င်းကို ဤကဲ့သို့သော ဒြပ်စင်ခွဲများအဖြစ် ခွဲထုတ်ပါမည်-

<name>
  <first>Bill</first>
  <last>Gates</last>
</name>

Parsed Character Data (PCDATA) သည် XML parser မှ ခွဲခြမ်းစိတ်ဖြာမည့် စာသားဒေတာအကြောင်း သုံးသည့်အသုံးအနှုန်းဖြစ်သည်။


CDATA - (ခွဲခြမ်းမထားသော) ဇာတ်ကောင်ဒေတာ

CDATA ဟူသော အသုံးအနှုန်းကို XML parser မှခွဲခြမ်းစိတ်ဖြာခြင်းမပြုသင့်သော စာသားဒေတာနှင့်ပတ်သက်၍ အသုံးပြုသည်။

"<" နှင့် "&" ကဲ့သို့သော ဇာတ်ကောင်များသည် XML ဒြပ်စင်များတွင် တရားမဝင်ပါ။

"<" သည် ၎င်းကို ဒြပ်စင်အသစ်တစ်ခု၏ အစအဖြစ် ခွဲခြမ်းစိတ်ဖြာထားသောကြောင့် "<" သည် အမှားအယွင်းတစ်ခုကို ထုတ်ပေးလိမ့်မည်။

ခွဲခြမ်းစိတ်ဖြာသူက ဇာတ်ကောင်တစ်ခု၏ အစအဖြစ် အဓိပ္ပာယ်ပြန်ဆိုသောကြောင့် "&" သည် အမှားအယွင်းတစ်ခုကို ထုတ်ပေးလိမ့်မည်။

JavaScript ကုဒ်ကဲ့သို့ စာသားအချို့တွင် "<" သို့မဟုတ် "&" စာလုံးများ အများအပြားပါရှိသည်။ အမှားများကိုရှောင်ရှားရန် script code ကို CDATA အဖြစ်သတ်မှတ်နိုင်သည်။

CDATA ကဏ္ဍအတွင်းရှိ အရာအားလုံးကို parser မှ လျစ်လျူရှုထားသည်။

CDATA အပိုင်းတစ်ခုသည် " <![CDATA[ " နှင့် စတင်ပြီး " ]]> ":

<script>
<![CDATA[
function matchwo(a,b) {
    if (a < b && a < 0) {
        return 1;
    } else {
        return 0;
    }
}
]]>
</script>

အထက်ဖော်ပြပါ ဥပမာတွင်၊ CDATA ကဏ္ဍအတွင်းရှိ အရာအားလုံးကို parser မှ လျစ်လျူရှုထားသည်။

CDATA ကဏ္ဍများအတွက် မှတ်စုများ-

CDATA ကဏ္ဍတွင် "]]>" စာကြောင်း မပါဝင်နိုင်ပါ။ Nested CDATA ကဏ္ဍများကို ခွင့်မပြုပါ။

CDATA ကဏ္ဍ၏အဆုံးကို အမှတ်အသားပြုသော "]]>" တွင် နေရာလွတ်များ သို့မဟုတ် လိုင်းခွဲများ မပါဝင်နိုင်ပါ။