XML σημαίνει Επεκτάσιμη Γλώσσα Σημείων και είναι μια ευρέως χρησιμοποιούμενη μορφή δεδομένων που χρησιμοποιείται για την δομημένη αποθήκευση πληροφοριών, είτε πρόκειται για διευθυνσιολόγια, δεδομένα καιρού ή άλλες συλλογές δεδομένων. Σε αυτό τον οδηγό θα σου δείξω πώς να επεξεργάζεσαι αρχεία XML με LINQ (Ενσωματωμένη Γλώσσα Ερωτήσεων) στην C# αποτελεσματικά. Θα ασχοληθούμε βήμα προς βήμα με την επεξεργασία, ταξινόμηση και φιλτράρισμα δεδομένων XML.
Κύριες γνώσεις
- Το XML είναι ιδανικό για δομημένη αποθήκευση δεδομένων.
- Το LINQ επιτρέπει αποδοτική ερώτηση και επεξεργασία δεδομένων XML.
- Μπορείς να φιλτράρεις με LINQ σύμφωνα με συγκεκριμένα κριτήρια και να ταξινομήσεις τα αποτελέσματα.
- Ο συνδυασμός XML και LINQ βελτιώνει την αναγνωσιμότητα και διαχείριση των δεδομένων στην C#.
Ανάγνωση και προετοιμασία δεδομένων XML
Για να εργαστείς με δεδομένα XML, πρέπει πρώτα να προσθέσεις τα κατάλληλα namespaces. Αυτά είναι καθοριστικά για την ανάγνωση και την επεξεργασία των δεδομένων XML.
Αρχικά, προσθέτουμε τα απαιτούμενα namespaces:

Η κεντρική κλάση που θα χρησιμοποιήσουμε είναι το XDocument. Αντιπροσωπεύει ένα έγγραφο XML, με το οποίο μπορούμε να επεξεργαστούμε εύκολα τα δεδομένα XML μας. Στο παράδειγμά μας, θα δημιουργήσουμε μια instance αυτής της κλάσης για να αρχικοποιήσουμε ένα έγγραφο XML.
Δημιουργία του XDocument
Στο επόμενο βήμα, δημιουργείς μια instance του XDocument που διαβάζει τα δεδομένα XML σου. Ονομάζουμε αυτή την instance plzxdoc.
Με την εντολή Parse, γεμίζεις το αντικείμενο με το XML string σου. Αυτό το βήμα είναι ουσιαστικό, καθώς σου επιτρέπει να αποθηκεύσεις και να χειριστείς τα δεδομένα XML στη μεταβλητή plzxdoc.
Εκτέλεση ερωτήσεων LINQ σε δεδομένα XML
Αφού κάψεις το XML έγγραφό σου, η σημαντική ερώτηση ακολουθεί. Το LINQ σου επιτρέπει να φιλτράρεις συγκεκριμένα δεδομένα με ευκολία. Για το παράδειγμά μας, θα χρησιμοποιήσουμε το LINQ to XML για να φιλτράρουμε όλους τους ταχυδρομικούς κωδικούς.
Προετοιμασία ερώτησης LINQ
Αυτή η ερώτηση διατρέχει όλα τα στοιχεία του XML εγγράφου που αντιπροσωπεύουν έναν ταχυδρομικό κωδικό και τα φιλτράρει με βάση την τοποθεσία "Βερολίνο". Ως αποτέλεσμα, θα πάρεις μόνο τους ταχυδρομικούς κωδικούς που πληρούν αυτή την προϋπόθεση.
Ταξινόμηση των αποτελεσμάτων
Με το LINQ, μπορείς επίσης να ταξινομήσεις τα φιλτραρισμένα αποτελέσματα.

Εδώ, οι ταχυδρομικοί κωδικοί ταξινομούνται κατά φθίνουσα σειρά, έτσι ώστε οι υψηλότεροι ταχυδρομικοί κωδικοί να εμφανίζονται πρώτα.
Έξοδος των αποτελεσμάτων
Τώρα που έχεις τους φιλτραρισμένους και ταξινομημένους ταχυδρομικούς κωδικούς, είναι καιρός να τους εμφανίσεις στην κονσόλα ή σε μια διεπαφή χρήστη.
Εκτύπωση με ForEach
Με αυτή τη βρόχο, αποκτάς πρόσβαση στις τιμές της γειτονιάς καθώς και του ταχυδρομικού κωδικού και τις εμφανίζεις διαμορφωμένες στην κονσόλα.
Σύνοψη – Προγραμματισμός LINQ με δεδομένα XML στην C
Σε αυτό τον οδηγό, έμαθες πώς να ανακτάς, να φιλτράρεις και να εκτυπώνεις δεδομένα XML στην C# με LINQ. Στην αρχή, γνώρισες τις βασικές αρχές του XML και του LINQ και ενσωμάτωσες τα αντίστοιχα namespaces. Στη συνέχεια, δημιούργησες μια instance του XDocument και χρησιμοποίησες μια ερώτηση LINQ για την επεξεργασία των δεδομένων. Τέλος, ταξινόμησες τα φιλτραρισμένα δεδομένα και τα εξέτασες στην κονσόλα.
Συχνές ερωτήσεις
Τι είναι το XML;Το XML σημαίνει Επεκτάσιμη Γλώσσα Σημείων και χρησιμοποιείται για την δομημένη αποθήκευση δεδομένων.
Τι σημαίνει το LINQ;Το LINQ είναι μια γλώσσα για την ενσωμάτωσή ερωτήσεων στο.NET, η οποία επιτρέπει την ερώτηση και την επεξεργασία δεδομένων με δηλωτικό τρόπο.
Πώς φιλτράρω δεδομένα XML με LINQ;Μπορείς να φιλτράρεις δεδομένα XML με μια ερώτηση LINQ, καθορίζοντας τις συνθήκες για τα επιθυμητά στοιχεία και χαρακτηριστικά, π.χ. where (string)plz.Element("Ort") == "Berlin".
Πώς ταξινομώ τα αποτελέσματα με LINQ;Τα αποτελέσματα μπορούν να ταξινομηθούν με τη μέθοδο OrderBy ή OrderByDescending, καθορίζοντας τις επιθυμητές ιδιότητες σύμφωνα με τις οποίες θα ταξινομηθούν.