Ένα μικρό πρόγραμμα στα αγγλικά για δημιουργία 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
Αντί να γράψουμε δικό μας πρόγραμμα για να χειριστεί το 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.