| |
|
|
- Page 1 - |
|
Christian Hahn | Hallo an alle,
hat jemand eine Idee wie man XML/XHTML Dokumente in ein Verzeichnisbaum (DOM) einlesen, bearbeiten und wieder speichern kann? Ideal dafür währe von "Pascal" TvConti1. Am besten ist wahrscheinlich eine Umsetzung in Assembler, wegen Geschwindigkeit, oder gibt es schon Module (DLL?). Das XML Format findet ja immer mehr Verbreitung und man sollte damit auch in XProfan etwas anfangen können, zumal es ja freie XSLT-Prozessoren zum Umwandeln in andere Datenformate (z.B. [...] ) gibt, damit kann man auch die Wohlgeformtheit prüfen.
Meine Vorstellung: XML File in Baum laden -> Elemente einfügen, löschen oder bearbeiten -> als XML speichern und/oder circa XSLT-Prozessor als z.B json exportieren
Auf jeden Fall habe ich keinen Plan!
Einen guten Rutsch und viel Erfolg im Jahr 2010 wünscht Christian Hahn |
|
|
| |
|
|
|
| |
|
- Page 1 - |
|
Jörg Sellmeyer | Ich hab die Books.xml von hier [...] verwendet. Mit Deinem neuen Code bekomme ich genau einen Eintrag
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 30.12.2009 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Jörg!
Hier noch ein Minimal-Beispiel: KompilierenMarkierenSeparierenwindow 700,200
$H Windows.ph
$H ocx3a.ph
$I ocx3a.inc
$I ocxInfo.inc
ocxInit()
var File$="X:Books.xml"
var Document&=ocxCreate("Msxml2.DOMDocument")
print "Document :",ocxName(Document&),Document&
print "Load :",ocxMethod(Document&,"load",File$)----- OK = -1
print "HasChildren:",ocxMethod(Document&,"hasChildNodes")-- OK = -1
print
var NodeList&=ocxGet(Document&,"childNodes")
print "NodeList :",ocxName(NodeList&),NodeList&
print "Children :",ocxGet(NodeList&,"length")
print
var Child1&=ocxGet(NodeList&,"Item",0)
print "Child1 :",ocxName(Child1&),Child1&
print
var Child2&=ocxGet(NodeList&,"Item",1)
print "Child2 :",ocxName(Child2&),Child2&
ocxDeInit()
waitkey
SeeYou Pascal |
|
|
| |
|
|
|
Jörg Sellmeyer | Das ist das Ergebnis:
Hier ist eine manifest.xml, die bei mir funktioniert:
<?xml version="1.0" encoding="utf-8" ?>
<Package>
<Files Time="2001-07-20T23:29" Version="6.10.0016.1624" UIVer="1" PVersion="1616.24">
<Group Name="Critical" Url="..%2F..">
<File Name="Setupmsn9xmig.dll" Hash="006066179165170056004117042027217067195106042074181195074251" Size="3113" />
<File Name="Setupmigrate.dll" Hash="120148054021128063087048224016070163125174141252154003252201" Size="6016" />
<File Name="Setupmsnunin.exe" Hash="147181051126107112026028028084075160235154203200136161005023" Size="10240" />
<File Name="Setupmsnupgrd.inf" Hash="125086141049240177093045079083031044130029053183152029117245" Size="1047" />
<File Name="update.exe" Hash="126176124138080243188000135117163158226243039019180233159055" Size="30385" />
<File Name="msn6.exe" Hash="006149214051173132208153170250222117015068119056143216146188" Size="35941" />
<File Name="msnmetal.dll" Hash="139222237220200125099180190237204090177042208036217100012005" Size="453887" />
<File Name="msnmetal.we" Hash="023243225112125023248001254127119245124186015087165002176133" Size="150" />
<File Name="msnmetal.jcf" Hash="015082022006163004024136080243235247076003053095217200074128" Size="335" />
<File Name="msnmtllc.dll" Hash="103213015196175139233189196084105224143197025191111198183128" Size="17437" />
<File Name="msdbx.dll" Hash="118134049132248230089107171240054011219203181122100015218171" Size="26934" />
<File Name="msmom.dll" Hash="060102191237075219042245223186161015180130062254109078088100" Size="157792" />
<File Name="mail.mar" Hash="240014088069073059201007196194061011152057227206204109232016" Size="364421" />
<File Name="msnspell.dll" Hash="203223218164002229225023241251048233169021174054217028190124" Size="40259" />
<File Name="ui.mar" Hash="117215007222123179218106170148139080251180197208206017209118" Size="753415" />
<File Name="themedef.mar" Hash="105202095191069095207180200130060011062116142182209018157136" Size="1685601" />
<File Name="online.wav" Hash="104075253182074126235179186237223025242101123104127176099234" Size="5451" />
<File Name="newalert.wav" Hash="083176106012043122243127129126094248126132072119131170165188" Size="5993" />
<File Name="newemail.wav" Hash="005174229057034062223137093022068055019033213065145087120025" Size="12673" />
<File Name="highcont.mar" Hash="183070080040218235143191194023106061103073214238009061033043" Size="14799" />
<File Name="logonmgr.dll" Hash="135103147080221162183118122093044129001050062038033076163233" Size="90407" />
<File Name="custdial.dll" Hash="068197186065205130048225193223009014097071087039064217251197" Size="5509" />
<File Name="popc.dll" Hash="228027200152051028162196005143045144236188237126077185076057" Size="37117" />
<File Name="csapi3t1.dll" Hash="071164211144136204149196127251168194082167196207073147167145" Size="25151" />
<File Name="sqdll.dll" Hash="001093243247112100005123020104046218078008216203154190233234" Size="48088" />
<File Name="migrate.dll" Hash="247106073105042095245071185154082231193238002156159027212163" Size="19934" />
<File Name="migrate.ini" Hash="165211176093249061213227078043167068055207226170130128217126" Size="1478" />
<File Name="msnread.htm" Hash="225174234203141194067230004236015066081162117205112132253151" Size="2636" />
<File Name="copymar.exe" Hash="037246075051221141152118110018039042171016246196076208013015" Size="30922" />
<File Name="msnms.ico" Hash="174088073234197219042105240147080251069093080241103116041014" Size="11132" />
<File Name="msncpq.ico" Hash="072052134122204103095084055034249090099123099023110222102238" Size="1587" />
<File Name="msndell.ico" Hash="233196142148081218026231250137196189025117213114158034229226" Size="2036" />
<File Name="msnemail.ico" Hash="079065027154132221009120228254187076034146096227241035228056" Size="9619" />
<File Name="dw.exe" Hash="203116166131183102034228049251132066110211089229169235150092" Size="79577" />
<File Name="dwprivacy.hta" Hash="246046109212201060072014018055060076199018235160144093155023" Size="422" />
<File Name="license.txt" Hash="177073050057003031039245181059059064051016183241076160127015" Size="3476" />
<File Name="1031dwintl.dll" Hash="002231003043088016210131193244062125011131157246035230242221" Size="6619" />
<File Name="signup.mar" Hash="225029173094124230228029251215250191045068229139070026127072" Size="149313" />
</Group>
<Group Name="Market" Url="..">
<File Name="market.mar" Hash="090164182255085249018042253002090236154170121128151046207011" Size="138373" />
<File Name="market.ini" Hash="124027011004043154130249070156143013233094135078250128200114" Size="177" />
</Group>
<Group Name="Brand">
<File Name="Setupmsn.inf" Hash="209137000128079246159003094191074002224238030003105180194219" Size="4052" />
</Group>
<Group Name="Messenger" Url="..%2F.." SetupExe="mmssetup.exe" Size="769976" Version="3,6,0,26">
<File Name="mcmess.dll" Hash="9,2000,1110,1" />
<File Name="msgsc.dll" Hash="3,6,0,26" />
<File Name="msgslang.dll" Hash="3,6,0,26" />
<File Name="msgsmigr.dll" Hash="3,6,0,26" />
<File Name="msgstrst.dll" Hash="3,6,0,26" />
<File Name="msmsgs.exe" Hash="3,6,0,26" />
<File Name="n2pcli.dll" Hash="2,1,16,0" />
</Group>
</Files>
</Package>
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 30.12.2009 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Jörg!
Auch mit deiner XML keine Probleme Anscheinend wird bei dir die File nicht geladen. Überprüf doch mal den Dateipfad! (Hab ja - wie immer - keine Fehlerabfrage eingebaut)
BTW:...räusper... das X: vor Books.xml ist mein Laufwerk und hat nichts mit den Funktionen zu tun... Hätte ich vielleicht erwähnen sollen...
HTH Pascal |
|
|
| |
|
|
|
| |
|
| |
|
|
| |
|
- Page 2 - |
|
|
Jörg Sellmeyer | Glaubt mir: ich weiß, wie man das Vorhandensein einer File überprüft Poste doch mal den Inhalt Deiner Books.xml |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 31.12.2009 ▲ |
|
|
|
|
| Also ich glaub Dir! |
|
|
| |
|
|
|
Jörg Sellmeyer | Da bin ich ja beruhigt... |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 31.12.2009 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Jörg!
So war das auch nicht gemeint! Aber man hat schon Pferde kotzen sehen...
PS: Hab gerade an deinem Screenshot gesehen, das das XML-Objekt garnicht korrekt erzeugt wird Müßte eigendlich IXMLDOMDocument2 heißen.
Edit: Hab gerade gesehen,daß das an der Messagebox von XP lag
Was stimmt denn da nicht ??? Fehlt SP3? IE8? Office SchießmichTot?
Hast du den OLE/COM Interface Generator von Stefan Moebius [...] ? Unter "ProgID" in der Liste mal schauen, was mit Msxml oder Microsoft.XML anfängt und das dann bei ocxCreate() versuchsweise einsetzen.
HTH Und kommt alle gut ins neue Jahr! Pascal |
|
|
| |
|
|
|
Jörg Sellmeyer |
So war das auch nicht gemeint! Aber man hat schon Pferde kotzen sehen...
...und das direkt vor der Apotheke... Ich habs auch nicht so aufgefaßt.
Ich saug mir gerade IE8 und seh, obs hilft. Hab kein Office und mein IE ist Version 6, da ich ihn nicht benutze. Mal sehn, was passiert. Dir auch einen guten Rutsch! Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 31.12.2009 ▲ |
|
|
|
|
Jörg Sellmeyer | Also das IE-Update hat nix gebracht aber der zweite Tip war goldrichtig. Ich hab jetzt "Microsoft.XMLDOM.1.0" eingesetzt und das funktioniert. Aber wie will man das als Programmierer sicherstellen, daß da immer das Richtige eingesetzt wird... |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 31.12.2009 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Jörg!
Das "Msxml2.DOMDocument" habe ich bei MSDN gefunden; das hätte mich misstrauisch machen sollen... Die richtige ProgID lautet "Microsoft.XMLDOM" (die "VersionIndependentProgID"), die - hoffendlich - überall laufen sollte. Dieser Versions-HickHack ist ganz schön nervig
BTW: Technisch gesehen enthält jedes Attribut-Objekt anscheinend ein Text-Element, was aber eigendlich sinnlos ist, da der betreffende Wert circa das Attribut selbst zu erfragen ist. Darum frage ich mich, ob Attribute darüber hinaus weitere untergeordnete Elemente (Nodes oder Attribute) enthalten können? Oder ist eine entsprechende Abfrage zur Auflistung von Unterobjekten bei Attributen unnötig?
SeeYou Pascal |
|
|
| |
|
|