Σπίτι Προσωπικά Οικονομικά Ανάλυση συμβάντων XML με SAX - ανδρείκελα

Ανάλυση συμβάντων XML με SAX - ανδρείκελα

Πίνακας περιεχομένων:

Βίντεο: Web Scraping with Nokogirl/Kimono by Robert Krabek 2024

Βίντεο: Web Scraping with Nokogirl/Kimono by Robert Krabek 2024
Anonim

Η λέξη συμβάν δημιουργεί όλα τα είδη εικόνων. Για έναν μη προγραμματιστή, ένα γεγονός είναι μόνο "κάτι που συμβαίνει. "Εάν είστε συνηθισμένοι να ασχολείστε με παράθυρα και καρέ στην Java, τότε ίσως σκεφτείτε ένα γεγονός ως ένα περιστατικό που ξυπνά ένα κομμάτι κώδικα. Για παράδειγμα, το κλικ του ποντικιού ή το πάτημα ενός πλήκτρου του χρήστη ξυπνά τον κωδικό που θέτει μια επιλογή και εμφανίζει ένα πλαίσιο OK. Το ίδιο κλικ ή πλήκτρο καλείται συμβάν επειδή συμβαίνει ανεξάρτητα από το τρέχον πρόγραμμα. Μόνο ο χρήστης γνωρίζει πότε θα πατήσει αυτό το κουμπί. Και όταν πατηθεί το κουμπί, κάποιο μέρος του προγράμματος Java ξυπνάει και ασχολείται με την κατάσταση. Αυτό το σενάριο ονομάζεται προγραμματισμός που καθοδηγείται από συμβάντα .

Προγραμματισμός που βασίζεται σε συμβάντα

Τα προγράμματα SAX είναι οδηγούμενα από συμβάντα . Για παράδειγμα, παίρνετε στο κρεβάτι για έναν καλό ύπνο. Θα φτάσετε πάνω για να ρυθμίσετε το ξυπνητήρι σας και στη συνέχεια να εγκατασταθεί, κλείστε τα μάτια σας, και να γίνει ασυνείδητο για αρκετές ώρες. Στη συνέχεια συμβαίνει ένα σημαντικό γεγονός: έρχεται μια συγκεκριμένη ώρα της ημέρας. Όταν πραγματοποιηθεί το συμβάν, το ξυπνητήρι εισέρχεται στη λειτουργία "ξυπνήστε" - και κάνει ένα φοβερό να σας ανακαλέσει από τον ξεκούραστο ύπνο σας.

Ακολουθεί ένα άλλο σενάριο. Είστε απασχολημένος στέλεχος και θα είστε έξω για αρκετές ώρες, αλλά δεν θέλετε να χάσετε οποιαδήποτε σημαντική δραστηριότητα. Πριν βγείτε από το γραφείο, πείτε στο βοηθό σας: "Καλέστε μου αν εμφανιστεί κάτι σημαντικό. "Η έκδοση αυτής της παραγγελίας είναι παρόμοια με τη ρύθμιση του ξυπνητηριού. Εσείς λέτε στον βοηθό σας (το ξυπνητήρι σας) να σας ξυπνήσει αν συμβεί κάποιο γεγονός. Πραγματοποιώντας αυτό το αίτημα στον βοηθό σας (ή στον ξυπνητήρι σας) ονομάζεται εγγραφή . Σε κάθε σενάριο, εγγράφεστε στον εαυτό σας με μια υπηρεσία αφύπνισης. Μετά την εγγραφή σας, μπορείτε να συνεχίσετε τη χαλαρή μη άσκηση δραστηριότητάς σας, αγνοώντας όλες τις πραγματικές επιχειρήσεις μέχρι να συμβεί κάποιο γεγονός. Στη συνέχεια …

Δακτύλιος, δακτύλιος. Το κινητό σου κουράζει. "Χαίρετε? "

" Γεια σας. Αυτός είναι ο βοηθός σας. Έχω τα στοιχεία πωλήσεων για το πρώτο τρίμηνο. Είναι 1 εκατομμύριο, 4 εκατομμύρια και 2 εκατομμύρια. "

" Ας δούμε. Αυτό είναι ένα σύνολο 7 εκατομμυρίων, "λέτε. "Θα το σημειώσω στο PalmPilot μου. Ευχαριστώ. "Κρεμάστε.

Πολλές στιγμές αργότερα, θα λάβετε μια άλλη κλήση. "Ο πρόεδρος της Big Bucks, Inc., θέλει να κλείσει αυτή τη συμφωνία. Μιλάνε 10 εκατομμύρια δολάρια. "

"Χμμ", απαντάς. "Αυτό θα φέρει τα ετήσια έσοδα μέχρι και 17 megabucks. Θα αποθηκεύσω αυτές τις πληροφορίες στην εφαρμογή υπολογιστικού φύλλου μου. Ευχαριστώ που κάλεσες. "

Κάθε μία από αυτές τις αλληλεπιδράσεις είναι γνωστή ως επανάκληση .Νωρίτερα την ημέρα, όταν καταχωρήσατε την επιθυμία σας με τον βοηθό, ζητήσατε μια επανάκληση. Στη συνέχεια, κάθε φορά που λαμβάνει χώρα ένα συμβάν, ο βοηθός κάνει μια επανάκληση για να σας ειδοποιήσει για το συμβάν. Σε όρους προγραμματισμού Java, ο βοηθός καλεί μία από τις πολλές μεθόδους (ένα από τα υποπρογράμματα Java).

Η ουσία του προγραμματισμού που οδηγείται από γεγονότα

Ο προγραμματισμός που βασίζεται σε γεγονότα έχει τρία μέρη:

  • Εγγραφή: Καταγράφετε την επιθυμία σας να ενημερώνεστε κάθε φορά που συμβαίνει κάποιο συμβάν. Καταγράφετε αυτήν την επιθυμία με ένα άλλο κομμάτι κώδικα - άλλο αντικείμενο, συνήθως κάτι που έχετε εισάγει (όπως ένα κομμάτι κώδικα που είναι μέρος του API κάποιου άλλου). Αυτό το αντικείμενο παρακολουθεί, από πίσω, για την εμφάνιση του γεγονότος που καθορίσατε.
  • Συμβάν συμβάν: Συμβαίνει ένα συγκεκριμένο συμβάν.
  • Επανάκληση: Το άλλο κομμάτι του κώδικα πραγματοποιεί επανάκληση. Μία από τις μεθόδους σας καλείται.

Δύο είδη κωδικών

Η διάκριση μεταξύ κώδικα ενεργών και παθητικού είναι χρήσιμη:

  • Ο ενεργός κώδικας έχει μια κύρια μέθοδο. Ο ενεργός κώδικας, όταν αρχίσει να τρέχει, παίρνει την κεντρική σκηνή. Ο ενεργός κώδικας περιέχει το νήμα εκτέλεσης που ελέγχει ολόκληρο το παιχνίδι με μπάλα.
  • Ο παθητικός κώδικας βρίσκεται ακριβώς εκεί, περιμένοντας να τον καλέσετε. Μια παθητική τάξη ζαριών δεν κάνει τίποτα μέχρι να αποκαλυφθεί κάποιος άλλος κωδικός Dice. ρολό().

Τώρα, μπορείτε να σκεφτείτε ότι ο παθητικός κώδικας είναι το μόνο που χρειάζεστε για προγραμματισμό που βασίζεται σε γεγονότα, αλλά δεν είναι. Για το χειρισμό συμβάντων, χρειάζεστε αυτό το βήμα εγγραφής. Ο παθητικός κώδικας ξεκινά με την καταχώρισή του με κάποιο άλλο κομμάτι κώδικα.

Για να εδραιώσετε αυτή την έννοια της εγγραφής, σκεφτείτε ένα παράδειγμα από τον κόσμο των ποντικιών, των παραθύρων και των κουμπιών στην οθόνη. Δημιουργείτε ένα παράθυρο ή ένα πλαίσιο. Θέλετε το πλαίσιο σας να ανταποκρίνεται στα κλικ του ποντικιού, ώστε να εκδώσετε την ακόλουθη εντολή:

κουμπί. addMouseListener (αυτό);

Αυτή η εντολή καταχωρεί το πλαίσιο σας με το κουμπί. Η εντολή λέει, στην πραγματικότητα, Όποτε συμβαίνει ένα συμβάν ποντικιού, καλέστε μία από τις μεθόδους χειρισμού του ποντικιού του πλαισίου . Αργότερα, όταν ο χρήστης κάνει κλικ στο ποντίκι, το πλαίσιο παίρνει μια επανάκληση. Ο υπολογιστής καλεί τη μέθοδο του ποντικιού του πλαισίου.

Συμβάντα SAX

Σίγουρα, το SAX είναι αποτέλεσμα συμβάντων, αλλά αυτό δεν σημαίνει ότι ένα πρόγραμμα SAX περιμένει τα κλικ του ποντικιού. Αντ 'αυτού, ο κώδικας SAX ακολουθεί το μοντέλο καταχωρητή-συμβάντος-επανάκλησης που περιγράφεται στις τελευταίες παραγράφους. Κάθε πρόγραμμα SAX έχει δύο απαραίτητα κομμάτια κώδικα:

  • Ένα κομμάτι κώδικα που γράφετε - ο χειρισμός . (Ο χειριστής σας μπορεί να επεκτείνει μια προ-γραπτή κλάση DefaultHandler.)
  • Ο χειριστής είναι σαν το εκτελεστικό εκατομμυρίου δολαρίων στην προηγούμενη ενότητα.
  • Ένα κομμάτι κώδικα που κανονικά δεν γράφετε - ο αναλυτής . Ο αναλυτής παίζει ρόλο όπως αυτός του βοηθού της εκτελεστικής εξουσίας. Το API του Java 1. 4 διαθέτει ενσωματωμένο αναλυτή. Δημιουργείτε μια ενότητα αυτού του αναλυτή και, στη συνέχεια, καταχωρίζετε τον χειριστή σας με την εν λόγω παράσταση αναλυτή. Στην πραγματικότητα, πείτε στο Ίδρυμα να καλέσει τον χειριστή σας όποτε συμβαίνει κάποιο συμβάν.

Οτιδήποτε έχει να κάνει με την XML είναι καινούργιο και βρίσκεται ακόμα σε κατάσταση ροής. Εξαιτίας αυτού, η ορολογία είναι επιμελημένη με κάποιους ιδιόμορφους τρόπους. Κατά την ανάπτυξη της έκδοσης 2 της SAX, ορισμένοι τεχνικοί είχαν ένα φεστιβάλ make-up-new-names. Αυτό που συνήθως ονομάζεται "αναλυτής" ενσωματώνεται σε μια διεπαφή Java που ονομάζεται XMLReader. Υπήρχε μια τάξη που ονομάζεται org. xml. σαξ. Parser, αλλά η τάξη πήρε υποτιμημένη (πράγμα που σημαίνει ότι πρέπει να το ξύνετε από το κάτω μέρος του παπουτσιού σας). Για να κάνουμε τα πράγματα λίγο πιο περίπλοκα, υπάρχει ακόμα ένα εργαλείο ανάλυσης, javax. xml. αναλυτές. SAXParser. Χρησιμοποιείτε αυτό το SAXParser για να κάνετε τον εαυτό σας έναν XMLReader. Με λίγη τύχη, σύντομα θα εξοικειωθείτε με αυτή την περίπλοκη ορολογία. Προς το παρόν, θυμηθείτε ότι αυτό που ονομάζεται "αναλυτής" είναι συνήθως μια παρουσία του XMLReader.

Το σενάριο εγγραφής και επανάκλησης είναι αυτό που κάνει το SAX συμβάν. Τώρα το αστείο είναι ότι ένα γεγονός SAX δεν είναι απτό. Ένα συμβάν SAX δεν θα σας υπενθυμίσει την πληκτρολόγηση ή το πάτημα ενός κουμπιού. Στο SAX, ο αναλυτής σαρώνει ένα έγγραφο XML από πάνω προς τα κάτω. Κάθε φορά που ο αναλυτής συναντά κάτι ενδιαφέρον, ο αναλυτής εκλύει ένα συμβάν και καλεί τον χειριστή. Στη συνέχεια, ο χειριστής πρέπει να κάνει κάτι για αυτή την ενδιαφέρουσα συνάντηση.

Ανάλυση συμβάντων XML με SAX - ανδρείκελα

Η επιλογή των συντακτών

Πρόσβαση χωρίς σύνδεση με το SharePoint Online Workspace - ανδρείκελοι

Πρόσβαση χωρίς σύνδεση με το SharePoint Online Workspace - ανδρείκελοι

Microsoft SharePoint Workspace είναι ο καλλιτέχνης παλαιότερα γνωστός ως Microsoft Office Groove desktop εφαρμογή προσαρμοσμένη για άτομα που θέλουν να συνεργάζονται σε έγγραφα online και offline. Προσφέρεται μαζί με το Office 2010 και παρέχει μια διεπαφή χρήστη παρόμοια με την Εξερεύνηση των Windows για προβολή και επεξεργασία αρχείων και λιστών από μια τοποθεσία του SharePoint. SharePoint Workspace ...

Διατίθενται στη δημοσίευση του SharePoint 2010 - dummies

Διατίθενται στη δημοσίευση του SharePoint 2010 - dummies

Το Site δημοσίευσης του sharePoint 2010 παρέχει μια πλούσια εμπειρία επεξεργασίας καθιστά εύκολο για ένα μη τεχνικό πρόσωπο να δημιουργήσει ιστοσελίδες. Η προσθήκη του περιεχομένου σας στη σελίδα είναι γρήγορη. Το SharePoint παρέχει πολλά είδη δοχείων περιεχομένου που μπορείτε να χρησιμοποιήσετε κατά τη δημιουργία της σελίδας σας, συμπεριλαμβανομένων των πλαισίων κειμένου μιας γραμμής για την εισαγωγή μιας απλής γραμμής κειμένου ...

Για ιστότοπους SharePoint Online - dummies

Για ιστότοπους SharePoint Online - dummies

Μπορείτε να δημιουργήσετε και να αναπτύξετε τρεις κύριους τύπους σελίδων του SharePoint όχι λιγότερο!) - το καθένα με ξεχωριστή λειτουργία: περιεχόμενο, τμήματα Web και εκδόσεις σελίδων. Σελίδα περιεχομένου: Επίσης γνωστή ως σελίδα wiki, αυτό είναι το μαχαίρι ελβετικού στρατού των σελίδων του SharePoint. Μια σελίδα περιεχομένου παρέχει όχι μόνο μια θέση ...

Η επιλογή των συντακτών

Τι είναι ένας χάρτης Java; - ανδρείκελα

Τι είναι ένας χάρτης Java; - ανδρείκελα

Πίνακες και εξειδικευμένες λίστες καθιστούν δυνατή την εκτέλεση μιας εκπληκτικής σειράς εργασιών με την Java. Ωστόσο, υπάρχουν περιπτώσεις όπου μια εφαρμογή Java χρειάζεται κάτι που είναι περισσότερο παρόμοιο με μια βάση δεδομένων, χωρίς να έχει όντως όλες τις αποσκευές της βάσης δεδομένων (όπως η αγορά μιας ξεχωριστής εφαρμογής). Για παράδειγμα, μπορεί να θέλετε να είστε σε θέση ...

Λίγα περίεργα πράγματα για το Java Math - dummies

Λίγα περίεργα πράγματα για το Java Math - dummies

- να έχουν ορισμένους περιορισμούς όταν πρόκειται για υπολογισμό μαθηματικών. Αυτοί οι περιορισμοί είναι συνήθως ασήμαντοι, αλλά μερικές φορές γλιστρίζουν και σας δαγκώνουν. Εδώ είναι τα πράγματα που πρέπει να προσέξετε όταν κάνετε μαθηματικά στην Java. Η

Η επιλογή των συντακτών

Πώς να δουλεύεις με τη νέα γκάμα Blur στο Photoshop CS6 - ανδρείκελα

Πώς να δουλεύεις με τη νέα γκάμα Blur στο Photoshop CS6 - ανδρείκελα

Από τα τρία νέα φίλτρα Blur στο Photoshop CS6, θα έχετε επίσης πρόσβαση σε δύο σχετικούς πίνακες ελέγχου, Εργαλεία θόλωσης και Εφέ θόλωσης, τα οποία περιέχουν τις επιλογές σας. Και τα τρία φίλτρα σας επιτρέπουν να δημιουργήσετε ειδικά εφέ. Blur πεδίου: Δημιουργεί μια συνολική θόλωση στην εικόνα σας. Με την προσθήκη πρόσθετων σημείων ελέγχου ή καρφίτσες, ...

Τρόπος εργασίας με τον πίνακα ιδιοτήτων στο Photoshop CS6 - ανδρείκελα

Τρόπος εργασίας με τον πίνακα ιδιοτήτων στο Photoshop CS6 - ανδρείκελα

, αυτόνομο πλαίσιο Μάσκες στο Photoshop CS6 προς όφελος του πίνακα Ιδιότητες, ο οποίος περιλαμβάνει τώρα τις δυνατότητες των πλαισίων Μάσκες και Προσαρμογές. Δεν υπάρχουν όμως ανησυχίες. Κανένα από τα χαρακτηριστικά που παρείχε προηγουμένως ο πίνακας "Μάσκες" χάθηκε. Ο νέος πίνακας Ιδιότητες σάς δίνει τη δυνατότητα να προσθέσετε, να επεξεργαστείτε και να διαχειριστείτε το στρώμα σας, ...

Πώς να εργάζεστε με το σημείο εξαφάνισης στο Photoshop CS6 - ανδρείκελα

Πώς να εργάζεστε με το σημείο εξαφάνισης στο Photoshop CS6 - ανδρείκελα

Μπορείτε να κάνετε ρεαλιστικές τροποποιήσεις σε εικόνες που έχουν προοπτικά επίπεδα. Με το Σημείο Εκκίνησης, καθορίζετε τα επίπεδα στις εικόνες σας και, στη συνέχεια, χρησιμοποιώντας μια ποικιλία τεχνικών, προσθέστε ή εξαλείψτε αντικείμενα σε αυτά τα αεροπλάνα. Ανοίξτε μια εικόνα που χρειάζεται επεξεργασία. Εάν θέλετε να επικολλήσετε ...