Παρασκευή 5 Φεβρουαρίου 2016

Δημιουργία-χειρισμός XML ο εύκολος τρόπος

Ένα μικρό πρόγραμμα στα αγγλικά για δημιουργία XML κειμένου. Θα πάμε σε συγκεκριμένο στοιχείο και θα το δείξουμε! Επίσης μπορούμε να το αλλάξουμε (θέλει Save μετά).
Αντί να γράψουμε δικό μας πρόγραμμα για να χειριστεί το XML κείμενο χρησιμοποιούμε ένα αντικείμενο που έχουν τα Windows για το χειρισμό των XML αρχείων.
Είναι λίγο μπέρδεμα γιατί αυτά τα αντικείμενα (δεν μπορούμε να τα περάσουμε με αντιγραφή) πρέπει να τα αποδεσμεύσουμε.

Η Save.Doc εξ ορισμού σώνει σε UTF-8, οπότε είναι κατάλληλη για το xml

Μπορούμε να καταχωρήσουμε κείμενο σε ένα στοιχείο  αλλά για να το διαβάσουμε πρέπει να αντικαταστήσουμε το lf με crlf με τη βοήθεια της replace$ και μιας μεταβλητής (η mytext$ είναι αντικείμενο, ή καλύτερα ιδιότητα αντικειμένου, οπότε αν γράψουμε σε αυτήν, γράφουμε στο αντικείμενο, το χρησιμοποιούμε αυτό για να αλλάξουμε τιμή)
a$=replace$(chr$(10),chr$(13)+chr$(10),mytext$)
       Report a$
Μπορεί κανείς να βάλει σε άλλο τμήμα τη δημιουργία και σε άλλο από το Declare και κάτω.


Document a$={<?xml version="1.0"?>
<wclass>
      <item id="69">
      <productid>VB6</productid>
      <quantity>2</quantity>
      </item>
      <item id="70">
      <productid>C++</productid>
      <quantity>3</quantity>
      </item>
</wclass>
}
Save.doc a$,"alfa.xml"
Wait 100
Declare xmlDoc "Msxml2.DOMDocument.6.0"
Method xmlDoc, "Load", dir$+"alfa.xml" as ok
If ok then {
      Declare DocElem use xmlDoc, "documentElement"
      Method DocElem, "selectSingleNode", "item[@id=70]" as itemNode
      Method itemNode, "selectSingleNode", "productid" as AChild
      With AChild, "text" as mytext$
      Print mytext$

      \\mytext$="George"
      \\Method xmlDoc, "Save", dir$+"alfa.xml" as ok

      Declare AChild Nothing
      Declare itemNode Nothing
      Declare DocElem Nothing
}
Declare xmlDoc Nothing

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.