Αποστολή XML χρησιμοποιώντας XMLHTTP

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

Έχω συγκεντρώσει ένα βασικό σενάριο για την αποστολή μιας συμβολοσειράς XML ή ενός αρχείου σε διακομιστή ιστού χρησιμοποιώντας το Excel VBA και ένα απλό σενάριο PHP για τη λήψη των δεδομένων. Η διαδικασία χρησιμοποιεί XMLHTTP.

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

Για το παράδειγμα, χρησιμοποιώ μια βασική συμβολοσειρά XML που μοιάζει με αυτήν:

1234567891011 myxml = "<? xml version =" "1.0" ">> & _"" & _"ανδρικό πόλο" & _"4.89" & _"μεγάλο" & _""

Η PHP που έχω χρησιμοποιήσει απλώς επιστρέφει τα δεδομένα που στάλθηκαν πίσω στο Excel. Έτσι, αν λάβετε τα ίδια δεδομένα XML που στείλατε σε ένα πλαίσιο μηνυμάτων, το έχετε κάνει σωστά. Εάν δεν βρεθούν δεδομένα δημοσίευσης, λέει "όχι ζάρια". Η τοποθεσία του URL δοκιμής είναι /pl/xlxml.php

Προφανώς θα θέλετε να ενημερώσετε το σενάριο για να αποθηκεύσετε τα περιεχόμενα του αρχείου στον διακομιστή σας για πρακτικές χρήσεις. Ακολουθεί η PHP για να λάβετε τα δεδομένα μετάδοσης XML και να τα επιστρέψετε:

1234567891011121314151617

Έτσι γνωρίζουμε τώρα τι στέλνουμε και πώς να το λάβουμε, ας στείλουμε τα δεδομένα XML!

Ο ακόλουθος κώδικας δημιουργήθηκε στο Excel 2003 και χρησιμοποιεί αναφορά στο Εργαλεία-> Αναφορές-> Microsoft XML v5.0 στο πρόγραμμα επεξεργασίας VB. Είναι καλά σχολιασμένο, ώστε να μπορείτε να δείτε όλα όσα συμβαίνουν:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 Sub SendXML ()«Μεταβλητή HTTPDim myHTTP Ως MSXML2.XMLHTTPΑντικείμενο HTTPΟρισμός myHTTP = CreateObject ("msxml2.xmlhttp")«Δημιουργία μεταβλητής εγγράφου dom«αποθηκεύει το xml για αποστολήDim myDom As MSXML2.DOMDocument«Δημιουργήστε το αντικείμενο DomDocumentΟρισμός myDom = CreateObject ("MSXML2.DOMDocument")"Φορτώστε ολόκληρο το έγγραφο πριν προχωρήσετεmyDom.async = Λάθος'xml μεταβλητή συμβολοσειράς«αντικαταστήστε με την τοποθεσία εάν στέλνετε από αρχείο ή διεύθυνση URLDim myxml As Stringmyxml = "<? xml version =" "1.0" ">> & _"" & _"ανδρικό πόλο" & _"4.89" & _"μεγάλο" & _"""φορτώνει το xml«αλλαγή σε. Φόρτωση για αρχείο ή urlmyDom.loadXML (myxml)'ανοίξτε τη σύνδεσηmyHTTP.Open "post", _"https://www.automateexcel.com/excel/pl/xlxml.php", Λάθος«στείλτε το XMLmyHTTP.Send (myDom.XML)«Εμφάνιση της απόκρισηςMsgBox myHTTP.ResponseTextΤέλος υπο

Εάν το έχετε κάνει μέχρι τώρα, προσθέσατε μια αναφορά και εκτελέσατε τον κώδικα, θα δείτε ότι πράγματι η PHP έλαβε και επέστρεψε το XML:

Σημειώσεις: Έχω δημιουργήσει μόνο δυναμικά το XML ή το έχω φορτώσει από αρχεία XML και URL, το επόμενο είναι η αποστολή δεδομένων από έναν χάρτη XML.

Επανέλαβα τα δεδομένα στο Excel αντί να τα γράψω στον διακομιστή επειδή η διεύθυνση URL είναι δημόσια, ήθελα να δώσω στους χρήστες ένα sandbox και να μην αποστέλλονται τυχαία αρχεία στον διακομιστή μου.

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave