ఎక్స్ఎమ్ఎల్ డామ్ బ్రౌజర్ వ్యత్యాసాలు
- ముందు పేజీ DOM నోడ్ ట్రావర్సల్
- తరువాత పేజీ DOM నోడ్ లొకేషన్
వివిధ బ్రౌజర్లు XML DOM లో ఖాళీ టెక్స్ట్ నోడ్లను ప్రాసెస్ చేయు విధానం వ్యత్యాసం ఉంది.
ఉదాహరణ
ఈ ఉదాహరణలో, ఎక్స్మ్ఎల్ ఫైల్ను వస్తువు ఉపయోగిస్తుంది books.xml.
ఫంక్షన్ loadXMLDoc()బాహ్య జావాస్క్రిప్ట్ లో ఉన్న ఫంక్షన్
- నోడ్ లిస్ట్ పొడవును చూపించండి
- ఈ ఉదాహరణలో, నోడ్ లిస్ట్ పొడవును చూపిస్తుంది. ఐఇ మరియు ఇతర బ్రౌజర్లు వద్ద ఈ ఫలితం వ్యత్యాసం ఉంటుంది.
- నోడ్ల మధ్య ఖాళీ టెక్స్ట్ ను పరిగణనలోకి తీసుకోకుండా పోవాలి
- ఈ ఉదాహరణలో, మేము నోడ్ యొక్క nodeType ను పరిశీలిస్తున్నాము, మరియు మాత్రమే ఐంజెల్ నోడ్లను ప్రాసెస్ చేస్తాము.
DOM పార్సింగ్ లో బ్రౌజర్ల వ్యత్యాసం
అన్ని ఆధునిక బ్రౌజర్లు W3C DOM ప్రమాణాలను మద్దతు ఇస్తాయి.
కానీ, బ్రౌజర్లు మధ్య వ్యత్యాసం ఉంది. ముఖ్యమైన వ్యత్యాసాలు రెండు ఉన్నాయి:
- ఎక్స్మ్ఎల్ లోడ్ విధానం
- ఖాళీ మరియు న్యాన్ లైన్స్ ప్రాసెసింగ్ విధానం
“ఎక్స్ఎమ్ఎల్ డామ్ పార్సింగ్” ఈ సెక్షన్, ఎక్స్మ్ఎల్ లోడ్ వివిధ విధానాలను వివరించింది.
ఈ సెక్షన్లో, మేము ఖాళీ మరియు న్యాన్ లైన్స్ ప్రాసెసింగ్ వివిధ విధానాలను గురించి వివరించందుకు ప్రయత్నిస్తున్నాము.
DOM - ఖాళీ మరియు న్యాన్ లైన్స్
XML నోడ్ల మధ్య కాంస్ట్రాక్షన్స్ లేదా స్పేస్ అక్షరాలు ఉంటాయి. ఈ విధమైన సాధారణ ఎడిటర్లు (గాని కొల్లి కాగితం) వద్ద ఇది తరచుగా జరుగుతుంది.
ఈ ఉదాహరణ (నాటకం చేత సంపాదించబడింది) ప్రతి వరుస మధ్య సిఆర్ఎల్/ఎల్ఎఫ్ ఉంటుంది, ప్రతి ఉపనోడు ముందు రెండు స్పేస్ ఉంటాయి:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
ఫెయిర్ఫాక్స్ మరియు ఇతర కొన్ని బ్రౌజర్లు ఖాళీ స్పేస్ లేదా న్యాన్ లైన్స్ ను టెక్స్ట్ నోడ్ గా ప్రాసెస్ చేస్తాయి, కానీ ఇంటర్నెట్ ఎక్స్ప్లోరర్ అలా చేయదు.
ఈ కోడ్ స్పందించిన కొడింగ్ చివరి రూట్ నోడ్ (books.xml యొక్క) ఎన్ని ఉపనోడ్లను కలిగి ఉంది అని చెప్పేది:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; document.write("Number of child nodes: " + x.length);
ఉదాహరణ వివరణం:
- ఉపయోగించి loadXMLDoc() బట్టి "books.xml" xmlDoc లో లోడ్ చేయండి
- రూట్ ఎలమెంట్ ఉపనోడ్లను పొందండి
- ఉపనోడ్ల సంఖ్య నిలువి చేయండి
ఫలితం బ్రౌజర్ ఉపయోగించినదిని ఆధారంగా ఉంటుంది. ఫైర్ఫాక్స్ 9 అవుతుంది, కానీ IE 4 అవుతుంది.
నోడ్ల మధ్య ఖాళీ టెక్స్ట్ ను పరిగణనలోకి తీసుకోకుండా పోవాలి
ఎలమెంట్ నోడ్ల మధ్య ఖాళీ టెక్స్ట్ నోడ్లను పరిగణనలోకి తీసుకోకుండా పోవాలి, నోడ్ రకాన్ని పరిశీలించండి. ఎలమెంట్ నోడ్ రకం 1 ఉంటే:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {// only process element nodes document.write(x[i].nodeName); document.write("<br />"); } }
ఉదాహరణ వివరణం:
- ఉపయోగించి loadXMLDoc() బట్టి "books.xml" xmlDoc లో లోడ్ చేయండి
- రూట్ ఎలమెంట్ ఉపనోడ్లను పొందండి
- ప్రతి ఉపనోడు నోడ్ నోడ్ రకం పరిశీలించండి. నోడ్ రకం "1" ఉంటే, అది ఎలమెంట్ నోడ్
TIY (సరళ) లేదా TIY (పూర్తి)
- ముందు పేజీ DOM నోడ్ ట్రావర్సల్
- తరువాత పేజీ DOM నోడ్ లొకేషన్