XML Ayrıştırıcı
Tüm büyük tarayıcılarda, XML'e erişmek ve bunları işlemek için yerleşik bir XML ayrıştırıcısı bulunur.
XML Ayrıştırıcı
XML DOM ( Belge Nesne Modeli) , XML'e erişmek ve düzenlemek için özellikleri ve yöntemleri tanımlar.
Ancak, bir XML belgesine erişilebilmesi için önce bir XML DOM nesnesine yüklenmesi gerekir.
Tüm modern tarayıcılarda, metni bir XML DOM nesnesine dönüştürebilen yerleşik bir XML ayrıştırıcısı bulunur.
Bir Metin Dizesini Ayrıştırma
Bu örnek, bir metin dizesini bir XML DOM nesnesine ayrıştırır ve ondan JavaScript ile bilgileri çıkarır:
Örnek
<html>
<body>
<p id="demo"></p>
<script>
var text, parser, xmlDoc;
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
</script>
</body>
</html>
Örnek Açıklama
Bir metin dizesi tanımlanır:
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
Bir XML DOM ayrıştırıcısı oluşturulur:
parser = new DOMParser();
Ayrıştırıcı, metin dizesini kullanarak yeni bir XML DOM nesnesi oluşturur:
xmlDoc = parser.parseFromString(text,"text/xml");
Internet Explorer'ın Eski Sürümleri
Internet Explorer'ın eski sürümleri (IE5, IE6, IE7, IE8) DOMParser nesnesini desteklemez.
Internet Explorer'ın eski sürümlerini işlemek için tarayıcının DOMParser nesnesini destekleyip desteklemediğini kontrol edin veya bir ActiveXObject oluşturun:
Örnek
if (window.DOMParser) {
// code for modern browsers
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
}
else {
// code for old IE browsers
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(text);
}
XMLHttpRequest Nesnesi
XMLHttpRequest Nesnesi , yerleşik bir XML Ayrıştırıcısına sahiptir .
ResponseText özelliği , yanıtı bir dize olarak döndürür.
ResponseXML özelliği, yanıtı bir XML DOM nesnesi olarak döndürür .
Yanıtı bir XML DOM nesnesi olarak kullanmak istiyorsanız, yanıtXML özelliğini kullanabilirsiniz.
Örnek
cd_catalog.xml dosyasını isteyin ve yanıtı bir XML DOM nesnesi olarak kullanın:
xmlDoc = xmlhttp.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("ARTIST");
for (i = 0; i < x.length; i++) {
txt += x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;