SAX பாகுபடுத்தியைப் பயன்படுத்தி எக்ஸ்எம்எல் கோப்பை பாகுபடுத்துதல்

DOM பாகுபடுத்தி, SAX பாகுபடுத்தி அல்லது ஸ்டாக்ஸ் பாகுபடுத்தியைப் பயன்படுத்தி எக்ஸ்எம்எல் கோப்பை பாகுபடுத்துவது போன்ற எக்ஸ்எம்எல் கோப்பை அலசுவதற்கு ஜாவா பல வழிகளை வழங்குகிறது.

எக்ஸ்எம்எல் கோப்பை அலசுவதற்கு ஜாவா பல வழிகளை வழங்குகிறது. எடுத்துக்காட்டாக, DOM பாகுபடுத்தி, SAX பாகுபடுத்தி அல்லது ஸ்டாக்ஸ் பாகுபடுத்தியைப் பயன்படுத்தி எக்ஸ்எம்எல் கோப்பை பாகுபடுத்துதல். இந்த இடுகையில் SAX பாகுபடுத்தியைப் பயன்படுத்தி எக்ஸ்எம்எல் கோப்பை எவ்வாறு அலசுவது என்று பார்ப்போம்



SAX பாகுபடுத்தியைப் பயன்படுத்தி எக்ஸ்எம்எல் கோப்புகளை எவ்வாறு அலசுவது என்பது குறித்த விவரங்களைப் பெறுவதற்கு முன்பு, வெவ்வேறு பாகுபடுத்திகள் மூலம் பாகுபடுத்துவதற்கும் மற்றொன்றுக்கு மேல் ஒன்றைத் தேர்ந்தெடுப்பதற்கும் என்ன வித்தியாசம் என்பதை முதலில் பார்ப்போம்.

SAX பாகுபடுத்தி - SAX என்பது XML க்கான எளிய API இன் சுருக்கமாகும். SAX பாகுபடுத்தி எக்ஸ்எம்எல் கோப்பு வரியை வரியாக பாகுபடுத்துகிறது மற்றும் எக்ஸ்எம்எல் கோப்பில் தொடக்க குறிச்சொல், இறுதி குறிச்சொல் அல்லது எழுத்துத் தரவை எதிர்கொள்ளும்போது நிகழ்வுகளைத் தூண்டுகிறது. இதனால்தான் SAX பாகுபடுத்தி நிகழ்வு அடிப்படையிலான பாகுபடுத்தி என்று அழைக்கப்படுகிறது

DOM பாகுபடுத்தி - DOM என்பது ஆவண பொருள் மாதிரியின் சுருக்கமாகும். SAX பாகுபடுத்தி போலல்லாமல் DOM பாகுபடுத்தி முழுமையான எக்ஸ்எம்எல் கோப்பை நினைவகத்தில் ஏற்றுகிறது மற்றும் மரத்தின் கட்டமைப்பை உருவாக்குகிறது, அங்கு மரத்தின் ஒவ்வொரு முனையும் எக்ஸ்எம்எல் கோப்பின் ஒரு கூறுகளை குறிக்கிறது. DOM பாகுபடுத்தி மூலம் நீங்கள் முனைகளை உருவாக்கலாம், முனைகளை அகற்றலாம், அவற்றின் உள்ளடக்கங்களை மாற்றலாம் மற்றும் முனை வரிசைக்கு செல்லலாம். எக்ஸ்எம்எல் கோப்புகளுடன் பணிபுரியும் போது டிஓஎம் அதிகபட்ச நெகிழ்வுத்தன்மையை வழங்குகிறது, ஆனால் இது பெரிய மெமரி தடம் மற்றும் பெரிய எக்ஸ்எம்எல் கோப்புகளின் விஷயத்தில் குறிப்பிடத்தக்க செயலி தேவைகள்

ஜாவாவில் லாகர் என்றால் என்ன

ஸ்டாக்ஸ் பாகுபடுத்தி - எக்ஸ்எம்எல் க்கான ஸ்ட்ரீமிங் ஏபிஐக்கான சுருக்கமே ஸ்டாக்ஸ். உங்கள் பயன்பாட்டில் நினைவக வரம்புகள் இருக்கும்போது ஸ்ட்ரீம் அடிப்படையிலான பாகுபடுத்திகள் மிகவும் பயனுள்ளதாக இருக்கும். எடுத்துக்காட்டாக, ஜாவா மைக்ரோ பதிப்பில் இயங்கும் செல்போன். இதேபோல், உங்கள் பயன்பாடு ஒரே நேரத்தில் பல கோரிக்கைகளை செயல்படுத்த வேண்டுமானால், எடுத்துக்காட்டாக ஒரு பயன்பாட்டு சேவையகம், ஸ்டாக்ஸ் பாகுபடுத்தி பயன்படுத்தப்பட வேண்டும்.

ஸ்ட்ரீம் அடிப்படையிலான பாகுபடுத்தலை மேலும் வகைப்படுத்தலாம்:

பாகுபடுத்தலை இழுக்கவும் - புல் பாகுபடுத்தலில், எக்ஸ்எம்எல் இன்ஃபோசெட்டுடன் தொடர்பு கொள்ள வேண்டியிருக்கும் போது கிளையன்ட் பயன்பாடு எக்ஸ்எம்எல் பாகுபடுத்தும் நூலகத்தில் முறைகளை அழைக்கிறது. வேறு வார்த்தைகளில் கூறுவதானால், கிளையன்ட் எக்ஸ்எம்எல் தரவை வெளிப்படையாகக் கேட்கும்போது மட்டுமே அதைப் பெறுகிறது.

புஷ் பாகுபடுத்தல் - புஷ் பாகுபடுத்தலில், எக்ஸ்எம்எல் இன்ஃபோசெட்டில் உள்ள கூறுகளை எதிர்கொள்ளும்போது, ​​எக்ஸ்எம்எல் தரவை கிளையண்டிற்கு தள்ளும் எக்ஸ்எம்எல் பாகுபடுத்தி இது. வேறு வார்த்தைகளில் கூறுவதானால், பயன்பாட்டைப் பயன்படுத்தத் தயாரா இல்லையா என்பதைப் பொருட்படுத்தாமல் பாகுபடுத்தி தரவை பயன்பாட்டிற்கு அனுப்புகிறது.

SAX, DOM மற்றும் STAX பாகுபடுத்தி இடையேயான ஒப்பீடு:

கீழே உள்ள அட்டவணை SAX, DOM மற்றும் STAX பாகுபடுத்தியின் அம்சங்களை சுருக்கமாகக் கூறுகிறது

Java_bloge_2

வெவ்வேறு பாகுபடுத்திகளைப் பற்றி இப்போது எங்களுக்குத் தெரியும், SAX பாகுபடுத்தியைப் பயன்படுத்தி எக்ஸ்எம்எல் கோப்பை எவ்வாறு அலசுவது என்று பார்ப்போம்

எக்ஸ்எம்எல் கோப்பு
ஜாவா பொருள்களை அலசவும் கட்டமைக்கவும் போகும் எக்ஸ்எம்எல் கோப்பு கீழே உள்ளது

ஜாவாவில் முழு எண்ணாக
தி பார்ன் அடையாள டக் லிமன் 119 மாட் டாமன், ஃபிராங்கா பொட்டென்ட் 2002 தி பார்ன் மேலாதிக்கம் பால் கிரீன்கிராஸ் 108 மாட் டாமன், ஃபிராங்கா பொட்டென்ட், ஜோன் ஆலன் 2004 தி பார்ன் அல்டிமேட்டம் பால் கிரீன் கிராஸ் 115 மாட் டாமன், எட்கர் ராமிரெஸ், ஜோன் ஆலன் 2007 தி பார்ன் லெகஸி டோனி கில்ராய் 135 ஜெர்மி ரென்னர் , ரேச்சல் வெய்ஸ், எட்வர்ட் நார்டன் 2012

திட்ட அமைப்பு
கிரகணம் ஐடிஇயில் திட்ட கட்டமைப்பின் ஸ்கிரீன் ஷாட் இங்கே

திரைப்பட பொருட்களின் பட்டியலை வைத்திருக்கும் டிவிடி வகுப்பு இங்கே

தொகுப்பு co.edureka.parsers.sax இறக்குமதி java.util.List பொது வகுப்பு டிவிடி {தனியார் சரம் பெயர் தனியார் பட்டியல் திரைப்படங்கள் பொது சரம் getName () {திரும்பப் பெயர்} பொது வெற்றிட செட் பெயர் (சரம் பெயர்) {this.name = name} பொது பட்டியல் getMovies () {திரும்ப திரைப்படங்கள்} பொது வெற்றிட செட் மூவிகள் (திரைப்படங்களை பட்டியலிடுங்கள்) {this.movies = திரைப்படங்கள்}}

மூவி ஆப்ஜெக்டில் பெயர், இயக்குநர்கள், திரைப்படத்தின் இயக்க நேரம் (காலம்), வெளியிடப்பட்ட ஆண்டு மற்றும் திரைப்படத்தின் நடிகர்கள் போன்ற பண்புகள் உள்ளன

தொகுப்பு co.edureka.parsers.sax பொது வகுப்பு திரைப்படம் {தனியார் சரம் பெயர் தனியார் சரம் இயக்குநர்கள் தனியார் எண்ணாக இயக்க நேரம் தனியார் எண்ணாக வெளியிடப்பட்ட தனியார் சரம் நடிகர்கள் பொது சரம் getName () {திரும்பப் பெயர்} பொது வெற்றிட செட் பெயர் (சரம் பெயர்) {this.name = பெயர்} பொது சரம் getDirectors () {திரும்ப இயக்குநர்கள்} பொது வெற்றிட செட் டைரக்டர்கள் (சரம் இயக்குநர்கள்) {this.directors = இயக்குநர்கள்} public int getRuntime () {return runime} public void setRuntime (int runtime) {this.runtime = runtime} public int getReleased ( ) {திரும்ப வெளியிடப்பட்டது} பொது வெற்றிட செட் வெளியிடப்பட்டது (எண்ணாக வெளியிடப்பட்டது) {this.released = வெளியிடப்பட்டது} பொது சரம் getCast () {திரும்ப வார்ப்பு} பொது வெற்றிட செட் காஸ்ட் (சரம் வார்ப்பு) {this.cast = cast} public பொது சரம் toString () ஐ மீறவும் return 'மூவி [பெயர் =' + பெயர் + ', இயக்குநர்கள் =' + இயக்குநர்கள் + ', இயக்க நேரம் =' + இயக்க நேரம் + ', வெளியிடப்பட்ட =' + வெளியிடப்பட்ட + ', நடிகர்கள் =' + நடிகர்கள் + ']'}}

SAX ஹேண்ட்லரை செயல்படுத்துகிறது:

நாங்கள் org.xml.sax.helpers ஐ நீட்டிக்கப் போகிறோம். DefaultHandler வகுப்பு இது பல அழைப்பு முறைகளை வழங்குகிறது மற்றும் பின்வரும் முறைகளை மேலெழுதும்:

startElement () - குறிச்சொல்லின் தொடக்கத்தை எதிர்கொள்ளும்போது இந்த முறை அழைக்கப்படுகிறது

endElement () - ஒரு குறிச்சொல்லின் முடிவை எதிர்கொள்ளும்போது இந்த முறை அழைக்கப்படுகிறது

எழுத்துக்கள் () - சில உரை தரவு எதிர்கொள்ளும்போது இந்த முறை அழைக்கப்படுகிறது

குறிப்பு: ஸ்டார்ட் டாக்மென்ட் (), எண்ட் டாக்மென்ட் () போன்ற பல அழைப்பு முறைகள் தேவைப்பட்டால் மீறப்படலாம்.

தொகுப்பு co.edureka.parsers.sax இறக்குமதி java.util.ArrayList இறக்குமதி java.util.List இறக்குமதி org.xml.sax. இறக்குமதி இறக்குமதி org.xml.sax.helpers.DefaultHandler பொது வகுப்பு SAXHandler DefaultHandler {DVD dvd = புதிய டிவிடி ( ) ListmovieList = புதிய வரிசை பட்டியல் () மூவி மூவி = பூஜ்ய சரம் உள்ளடக்கம் = பூஜ்ய பொது வெற்றிட தொடக்கநிலை (சரம் பெயர்வெளி, சரம் உள்ளூர் பெயர், சரம் qname, பண்புக்கூறுகள்) {if (qname.equals ('dvd')) {சரம் dvdName = பண்புக்கூறுகள் ('பெயர்') dvd.setName (dvdName)} else if (qname.equals ('movie')) {movie = new Movie ()}} public void endElement (string namespaceURI, string localName, string qname) {சுவிட்ச் (qname ) {case 'movie': movieList.add (movie) பிரேக் கேஸ் 'பெயர்': movie.setName (உள்ளடக்கம்) பிரேக் கேஸ் 'இயக்குநர்கள்': movie.setDirectors (content) break case 'release': movie.setReleased (Integer.parseInt (உள்ளடக்கம்)) முறிவு வழக்கு 'இயக்க நேரம்': movie.setRuntime (Integer.parseInt (உள்ளடக்கம்)) முறிவு வழக்கு 'cast': movie.setCast (content) break case 'dvd': dvd.setMovies (movieList) break}} பொது வெற்றிடம் சர cters (char [] ch, int start, int length) {content = new string (ch, start, length)} public DVD getDVD () {return dvd}}

SAX ஹேண்ட்லரை சோதிக்கிறது
இப்போது எங்கள் SAXHandler ஐ சோதிக்கலாம். சோதனை வகுப்பு SAXTest கீழே உள்ளது, அங்கு நாம் முதலில் SAXParserFactory இலிருந்து SAXParser இன் ஒரு நிகழ்வைப் பெறுகிறோம் மற்றும் இரண்டு வாதங்களை எடுக்கும் பாகுபடுத்தும் முறையை அழைக்கிறோம்: ஒரு கோப்பு மற்றும் ஒரு கையாளுதல் உதாரணம்.

தொகுப்பு co.edureka.parsers.sax இறக்குமதி java.io.IOException இறக்குமதி java.nio.file.Path இறக்குமதி java.nio.file.Paths இறக்குமதி java.util.List இறக்குமதி javax.xml.parsers.ParserConfigurationException இறக்குமதி javax.xml.parsers .SAXParser இறக்குமதி javax.xml.parsers.SAXParserFactory import org.xml.sax.SAXException பொது வகுப்பு SAXTest {public static void main (string [] args) ParserConfigurationException, SAXException, IOException {SAXParserSactorSactorPact parserFactor.newSAXParser () SAXHandler கையாளுநர் = புதிய SAXHandler () பாதை பாதை = பாதைகள்.ஜெட் ('src / resources', 'movies.xml') parser.parse (path.toFile (), கையாளுதல்) DVD dvd = handler.getDVD ( ) திரைப்படங்களை பட்டியலிடுங்கள் = dvd.getMovies () System.out.println ('டிவிடி பெயர்:' + dvd.getName ()) (திரைப்படத் திரைப்படம்: திரைப்படங்கள்) {System.out.println (திரைப்படம்)}}}

SAXTest வகுப்பை இயக்கும் போது நீங்கள் பின்வரும் வெளியீட்டைப் பெறுவீர்கள்:

ஜாவாவில் லாகர் என்றால் என்ன

குறிப்பு : Movies.xml இலிருந்து வெவ்வேறு கட்டமைப்புகளைக் கொண்ட ஒரு எக்ஸ்எம்எல் கோப்பை அலச முயற்சிக்கிறீர்கள் என்றால், ஸ்டார்ட்எலெமென்ட் () மற்றும் எண்ட் எலிமென்ட் () முறைகளில் உள்ள குறியீட்டை மாற்ற வேண்டும்.

குறியீட்டை முயற்சிக்க நீங்கள் ஆர்வமாக இருந்தால், குறியீட்டை பதிவிறக்கவும்
[buttonleads form_title = ”குறியீட்டைப் பதிவிறக்கு” ​​redirect_url = https: //edureka.wistia.com/medias/st5gg7rp15 course_id = 44 button_text = ”குறியீட்டைப் பதிவிறக்கு”]

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? கருத்துகள் பிரிவில் இதைக் குறிப்பிடவும், நாங்கள் உங்களைத் தொடர்புகொள்வோம்.

தொடர்புடைய இடுகைகள்: