Deutsch
Forum

XML Bearbeitung

 
- Seite 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 Datei in Baum laden -> Elemente einfügen, löschen oder bearbeiten -> als XML speichern und/oder über 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
 
Windows XP und Profan10 | Homepage... | Folge mir...
29.12.2009  
 



 
- Seite 1 -



Jörg
Sellmeyer
Ich hab die Books.xml von hier [...]  verwendet. Mit Deinem neuen Code bekomme ich genau einen Eintrag


9 kB
Hochgeladen:30.12.2009
Ladeanzahl192
Herunterladen
 
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:
KompilierenMarkierenSeparieren
window 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
 
30.12.2009  
 




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>

46 kB
Hochgeladen:30.12.2009
Ladeanzahl161
Herunterladen
 
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 Datei 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
 
31.12.2009  
 



Vlt. am besten File per:
KompilierenMarkierenSeparieren
proc furi

    parameters s$
    return "file:///"+translate$(translate$(s$,"\","/"),"//","/")

endproc

 
31.12.2009  
 



 
- Seite 2 -



Jörg
Sellmeyer
Glaubt mir: ich weiß, wie man das Vorhandensein einer Datei ü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!
 
31.12.2009  
 




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
 
31.12.2009  
 




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 über 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
 
02.01.2010  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

17.973 Betrachtungen

Unbenanntvor 0 min.
Thomas Zielinski02.08.2024
Axel Berse12.07.2024
H.Brill14.06.2023
Erasmus.Herold06.01.2023
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie