jsonecho

XML σε C++

Επικολλήστε ένα έγγραφο XML για να δημιουργήσετε τύπους C++ που ταιριάζουν στη δομή του.

Φόρτωση εργαλείου...

Πώς να χρησιμοποιήσετε το XML σε C++

  1. Επικολλήστε ένα αντιπροσωπευτικό δείγμα XML, ιδανικά με όλα τα προαιρετικά πεδία συμπληρωμένα.
  2. Ορίστε το όνομα του ριζικού τύπου και επιλέξτε αν θέλετε και βοηθητικό κώδικα ή μόνο τους τύπους.
  3. Αντιγράψτε τον παραγόμενο κώδικα C++ στο έργο σας.

Σχετικά με το XML σε C++

Η χειροκίνητη δημιουργία κλάσεων μοντέλου για πολλά δεδομένα XML είναι κουραστική και μπορεί εύκολα να οδηγήσει σε τυπογραφικά λάθη. Επικολλήστε εδώ ένα δείγμα και το εργαλείο θα αναγνωρίσει τη δομή του: ποια πεδία υπάρχουν, ποια είναι αντικείμενα, ποια είναι πίνακες και τι τύπο έχει κάθε τιμή. Το αποτέλεσμα είναι δομές στον χώρο ονομάτων quicktype, με συναρτήσεις from_json και to_json για τη βιβλιοθήκη nlohmann/json.

Το XML μετατρέπεται πρώτα σε JSON με τον ίδιο τρόπο όπως στο εργαλείο μας XML σε JSON: τα χαρακτηριστικά παίρνουν ένα @_ Το προοίμιο και το περιεχόμενο κειμένου δίπλα στις ιδιότητες ονομάζεται #text. Οι τύποι C++ δημιουργούνται από αυτό το αποτέλεσμα. Το αποτέλεσμα χρειάζεται τη βιβλιοθήκη nlohmann/json με ένα μόνο header, καθώς και ένα μικρό βοηθητικό τμήμα για προαιρετικές τιμές που περιλαμβάνεται ήδη.

Χρήση του παραγόμενου κώδικα

Συμπληρώστε την επικεφαλίδα nlohmann json, τότε auto root = nlohmann::json::parse(text).get<quicktype::Root>();.

Επιλογικά μέλη χρησιμοποιούν std::shared_ptr<T> και είναι άκυρες όταν λείπει το κλειδί.

Συχνές ερωτήσεις

Ποιες εξαρτήσεις έχει ο παραγόμενος κώδικας C++;

Το αποτέλεσμα είναι δομές στον χώρο ονομάτων quicktype, με συναρτήσεις from_json και to_json για τη βιβλιοθήκη nlohmann/json.

Πώς αναλύω το XML με το αποτέλεσμα;

Μετατρέψτε το XML σε JSON πρώτα (το εργαλείο μας XML σε JSON κάνει αυτό με τον ίδιο τρόπο), στη συνέχεια συμπεριλάβετε το αρχείο nlohmann json, στη συνέχεια auto root = nlohmann::json::parse(text).get<quicktype::Root>();.

Πώς αντιμετωπίζονται τα προαιρετικά πεδία και όσα λείπουν;

Επιλογικά μέλη χρησιμοποιούν std::shared_ptr<T> και είναι άκυρες όταν λείπει το κλειδί.

Εξετάζει το εργαλείο περισσότερες από μία εγγραφές;

Το εργαλείο γνωρίζει μόνο όσα περιλαμβάνει το δείγμα σας. Αν ένα πεδίο λείπει από το δείγμα, δεν θα συμπεριληφθεί στους τύπους. Αν μια τιμή είναι null, ο τύπος της δεν μπορεί να προσδιοριστεί. Επικολλήστε ένα δείγμα με όσο το δυνατόν περισσότερα συμπληρωμένα πεδία ή έναν πίνακα με αρκετές διαφορετικές εγγραφές.

Αποστέλλεται το XML μου σε διακομιστή;

Όχι. Την πρώτη φορά γίνεται λήψη του εργαλείου στο πρόγραμμα περιήγησης, περίπου 1 MB. Στη συνέχεια, όλα εκτελούνται τοπικά.

Περισσότερα στην κατηγορία Δεδομένα σε κλάσεις

Όλα τα εργαλεία →