XSLT - Client ပေါ်တွင်
သင်၏ဘရောက်ဆာရှိ စာရွက်စာတမ်းအား XHTML သို့ ပြောင်းလဲရန် XSLT ကို အသုံးပြုနိုင်သည်။
JavaScript ဖြေရှင်းချက်
ယခင်အခန်းများတွင် XSLT ကို စာရွက်စာတမ်းတစ်ခု XML မှ XHTML သို့ ပြောင်းလဲရန် မည်သို့အသုံးပြုရမည်ကို ရှင်းပြထားပါသည်။ XSL စတိုင်စာရွက်ကို XML ဖိုင်တွင်ထည့်ကာ ဘရောက်ဆာကို အသွင်ပြောင်းခွင့်ပြုခြင်းဖြင့် ၎င်းကို ကျွန်ုပ်တို့လုပ်ဆောင်ခဲ့သည်။၎င်းသည် ကောင်းမွန်သော်လည်း၊ XML ဖိုင်တစ်ခုတွင် ပုံစံစာရွက်အကိုးအကားကို ထည့်သွင်းရန် အမြဲတမ်း မလိုလားအပ်ပေ။
အသွင်ပြောင်းရန်အတွက် ပိုမိုစွယ်စုံရသော ဖြေရှင်းချက်မှာ JavaScript ကို အသုံးပြုခြင်းဖြစ်သည်။
JavaScript ကိုအသုံးပြုခြင်းဖြင့်၊ ကျွန်ုပ်တို့လုပ်နိုင်သည်-
- ဘရောက်ဆာ-သီးသန့်စမ်းသပ်မှုလုပ်ပါ။
- browser နှင့် အသုံးပြုသူ လိုအပ်ချက်အရ မတူညီသော ပုံစံစာရွက်များကို အသုံးပြုပါ။
ဒါ XSLT ရဲ့ အလှပါ။ XSLT အတွက် ဒီဇိုင်းရည်မှန်းချက်များထဲမှ တစ်ခုသည် မတူညီသောဘရောက်ဆာများနှင့် မတူညီသောအသုံးပြုသူလိုအပ်ချက်များကို ပံ့ပိုးပေးကာ ဒေတာကို ဖော်မတ်တစ်ခုမှ အခြားတစ်ခုသို့ ပြောင်းလဲနိုင်စေရန်ဖြစ်သည်။
XML ဖိုင်နှင့် XSL ဖိုင်
ယခင်အခန်းများတွင် သင်မြင်ခဲ့သော XML စာရွက်စာတမ်းကိုကြည့်ပါ-
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
နှင့် ပူးတွဲပါ XSL စတိုင်စာရွက်-
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title" /></td>
<td><xsl:value-of select="artist" /></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
XML ဖိုင်တွင် XSL ဖိုင်ကို ရည်ညွှန်းခြင်းမရှိကြောင်း သတိပြုပါ။
အရေးကြီးသည်- အထက်ဖော်ပြပါဝါကျသည် မတူညီသော XSL စတိုင်စာရွက်များကို အသုံးပြု၍ XML ဖိုင်ကို ပြောင်းလဲနိုင်သည်ကို ညွှန်ပြပါသည်။
Browser တွင် XML မှ XHTML သို့ပြောင်းခြင်း။
ဤသည်မှာ client ပေါ်ရှိ XML ဖိုင်ကို XHTML သို့ ပြောင်းလဲရန် လိုအပ်သော အရင်းအမြစ်ကုဒ်ဖြစ်သည် ။
ဥပမာ
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename)
{
if (window.ActiveXObject)
{
xhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
else
{
xhttp = new XMLHttpRequest();
}
xhttp.open("GET", filename, false);
try {xhttp.responseType = "msxml-document"}
catch(err) {} // Helping IE11
xhttp.send("");
return xhttp.responseXML;
}
function displayResult()
{
xml = loadXMLDoc("cdcatalog.xml");
xsl = loadXMLDoc("cdcatalog.xsl");
// code for IE
if (window.ActiveXObject
|| xhttp.responseType == "msxml-document")
{
ex =
xml.transformNode(xsl);
document.getElementById("example").innerHTML
= ex;
}
// code for Chrome, Firefox, Opera, etc.
else if (document.implementation
&& document.implementation.createDocument)
{
xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument =
xsltProcessor.transformToFragment(xml, document);
document.getElementById("example").appendChild(resultDocument);
}
}
</script>
</head>
<body onload="displayResult()">
<div
id="example" />
</body>
</html>
အကြံပြုချက်- JavaScript ရေးနည်းကို မသိပါက၊ ကျွန်ုပ်တို့၏ JavaScript သင်ခန်းစာကို လေ့လာပါ ။
ဥပမာ ရှင်းပြထားသည်-
loadXMLDoc() လုပ်ဆောင်ချက်သည် အောက်ပါအတိုင်း လုပ်ဆောင်သည်။
- XMLHttpRequest object တစ်ခုကို ဖန်တီးပါ။
- ဆာဗာတစ်ခုထံ တောင်းဆိုချက်တစ်ခုပေးပို့ရန် XMLHttpRequest object ၏ open() နှင့် send() နည်းလမ်းများကို အသုံးပြုပါ။
- တုံ့ပြန်မှုဒေတာကို XML ဒေတာအဖြစ် ရယူပါ။
displayResult() လုပ်ဆောင်ချက်ကို XSL ဖိုင်ဖြင့် ပုံစံချထားသော XML ဖိုင်ကို ပြသရန် အသုံးပြုသည်-
- XML နှင့် XSL ဖိုင်များကို တင်ပါ။
- အသုံးပြုသူတွင် မည်သည့်ဘရောက်ဆာကို စမ်းသပ်ပါ။
- အကယ်၍ Internet Explorer
- XSL စတိုင်စာရွက်ကို xml စာရွက်စာတမ်းတွင် အသုံးပြုရန် transformNode() နည်းလမ်းကို အသုံးပြုပါ။
- ပုံစံပြုလုပ်ထားသော xml စာရွက်စာတမ်းပါရှိရန် လက်ရှိစာရွက်စာတမ်း၏ကိုယ်ထည် (id="example") ကို သတ်မှတ်ပါ။
- အခြားဘရောက်ဆာများရှိပါက
- XSLTProcessor object အသစ်တစ်ခုဖန်တီးပြီး XSL ဖိုင်ကို ၎င်းသို့ တင်သွင်းပါ။
- XSL စတိုင်စာရွက်ကို xml စာရွက်စာတမ်းတွင် အသုံးပြုရန် transformToFragment() နည်းလမ်းကို အသုံးပြုပါ။
- ပုံစံပြုလုပ်ထားသော xml စာရွက်စာတမ်းပါရှိရန် လက်ရှိစာရွက်စာတမ်း၏ကိုယ်ထည် (id="example") ကို သတ်မှတ်ပါ။