| |
|
|
Christian Hahn | Hello all,
has someone a idea How one XML/XHTML documents into Verzeichnisbaum (DOM) reading, Edit and again Save can? ideal for true of "Pascal" TvConti1. best is probably a Umsetzung in Assembler, because of speed, or there already Module (DLL?). the XML stature finds Yes increasingly currency and one ought to so too in XProfan something begin can, especially since it Yes free XSLT-Prozessoren to that transfiguring in others Datenformate (z.B. [...] ) gives, so can too The Wohlgeformtheit Verify.
my Review: XML File in tree loading -> items insert, delete or Edit -> as XML Save and/or over XSLT-processor as z.B json export
On each drop have I none plan!
a good Slip and plenty success in the year 2010 wish Christian chanticleer |
|
|
| |
|
|
|
| somewhere I had time a einfachen XML-Parser posted, here could one between Objects, Nodes, ... discern and simply Own modes insert - finds not... was faith to [...] emerged.
alike, "heute would ichs eh differently machen" - so a xml.inc for XProfan existing unfortunately (yet) not but would at the latest with [...] one Parser this programmierbar the too blitzschnell his could.
If interest, then can I so a small XML-Parser later too again vormachen. around the tree innerprogrammlich To "merken" (not statement!) and simple management at Insert/Delete/Edit of Nodes, would I but a simple ListBox take its Entries z.B. end a Einrückungszähler own. accordingly liesse itself too blitzschnell Search.
the write then of XML is a eigener joke, need one but too no Libs or DLLs for - simple XML-Zeugs in XProfan would I on <300 Lines value means small Fleißarbeit.
the Aufwändigste would imho one schöner editor!
Perhaps. has Roland but too for XProfan12 something about XML in the Petto, who can tell. |
|
|
| |
|
|
|
Christian Hahn | so one Parser would already not so bad. it exists too yet The Possibility over one AktiveX-Objekt (msxml.dll) over "Pascals" OcxPackage. only looks I with the DLL yet plenty less through. |
|
|
| |
|
|
|
| In example.:
+ File in String loading + Strings in the string in Placeholder swap z.B. x01ID and so rausfiltern (q To q search To no q More include) + any Tabs and double Freizeichen or. unnütze characters with Translate$ lünchen as long as To no More there + Explode(upper(s),"<")
... and you have Schonmal the Schlimmste over native creep worn out - means right fix.
the zurückgegebene aray can now simply runtergerasselt go a function, The only yet single instructions/Strings process must and not any more the trouble has, first yet The XML To parsen. |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hi people!
If I twice in a Thread erwähnt will be, must I Yes report
objectively can by ActiveX apparently very simply on XML grab: CompileMarkSeparationwindow 700,500--Infos gefunden bei MSDN unter "XML DOM Objects/Interfaces "
$H Windows.ph
$H ocx3a.ph
$I ocx3a.inc
$I ocxInfo.inc--Zu Analysezwecken
ocxInit()
declare NodeList&
var Xml&=ocxCreate("Msxml2.DOMDocument")--oder Msxml2.FreeThreadedDOMDocument ?
ocxBrowse(Xml&)
var File$="X:Books.xml"--Demo-Datei; gibts bei MSDN; enthält anscheinend Infos über Bücher
ocxMethod(Xml&,"load",File$)
print File$
print "Name :",ocxGet(Xml&,"NodeName")
print "Type :",ocxGet(Xml&,"NodeTypeString")
print "Value :",ocxGet(Xml&,"NodeValue")
NodeList&=ocxGet(Xml&,"childNodes")---------Sammlung von ChildNodes
ocxBrowse(NodeList&)
print "Childs:",ocxGet(NodeList&,"length")--Anzahl Nodes in NodeList
ocxRelease(NodeList&)
print
print "Child1"
var Child1&=ocxGet(Xml&,"firstChild")
ocxBrowse(Child1&)
print "Name :",ocxGet(Child1&,"NodeName")
print "Type :",ocxGet(Child1&,"NodeTypeString")
print "Value :",ocxGet(Child1&,"NodeValue")
NodeList&=ocxGet(Child1&,"childNodes")
print "Childs:",ocxGet(NodeList&,"length")
ocxRelease(NodeList&)
print
print "Child2"
var Child2&=ocxGet(Child1&,"nextSibling")
ocxBrowse(Child2&)
print "Name :",ocxGet(Child2&,"NodeName")
print "Type :",ocxGet(Child2&,"NodeTypeString")
print "Value :",ocxGet(Child2&,"nodeValue")
NodeList&=ocxGet(Child2&,"childNodes")
print "Childs:",ocxGet(NodeList&,"length")
ocxRelease(NodeList&)
ocxDeInit()--Alle ausstehenden Freigaben erfolgen hier
waitkey
The problem is: I have something like of no idea of XML... If I the right see, becomes there so ne manner of directory-structure stored? with Parents and Children?
time integrally generally To ocx: so can itself useful everything umsetzen, what too with anybody Script Language possible is. If means Examples of VBS or JS gives...
HTH Pascal |
|
|
| |
|
|
|
Jörg Sellmeyer | have You The ocxinfo.inc already somewhere uploaded?
OK - found: [...]
Hm - by me krachts at first ocxGet(Child1&,"NodeName") |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 12/30/09 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Jörg!
red you The ermittelten ObjektHandles ausgeben; there's probably ne zero between. in the Zweifelsfall müßtest You time a betroffene XML provide.
have meanwhile something rumgebastelt: CompileMarkSeparationwindow 700,500
$H Windows.ph
$H ocx3a.ph
$I ocx3a.inc
$I ocxInfo.inc---Zu Analysezwecken (ocxName)
proc Auflisten---------------------------------------------Auflisten
parameters ParentNode&,TvRoot&
declare Node&
var Name$=ocxGet(ParentNode&,"NodeName")
var Wert$=ocxGet(ParentNode&,"NodeValue")
var Type$=ocxName(ParentNode&)--aus ocxInfo.inc
var Text$="Name:"+Name$+" / Type:"+Type$+" / Wert:"+Wert$
TvRoot&=TreeView("InsertItem",Tv&,TvRoot&,0,Text$)
settext %hwnd,"Einträge: "+str$(getcount(Tv&))
var NodeMap&=ocxGet(ParentNode&,"attributes")
if NodeMap&-------wird *nicht* leer erzeugt außer bei <author/> in Wiedergabelisten!
whileloop 0,ocxGet(NodeMap&,"length")-1
Node&=ocxGet(NodeMap&,"Item",&loop)
Name$=ocxGet(Node&,"NodeName")
Wert$=ocxGet(Node&,"NodeValue")
Type$=ocxName(Node&)--aus ocxInfo.inc
Text$="Name:"+Name$+" / Type:"+Type$+" / Wert:"+Wert$
TreeView("InsertItem",Tv&,TvRoot&,0,Text$)
ocxRelease(Node&)
endwhile
TreeView("SetChildren",Tv&,TvRoot&,1)
ocxRelease(NodeMap&)
endif
var NodeList&=ocxGet(ParentNode&,"childNodes")
var Count%=ocxGet(NodeList&,"length")
if Count%---------NodeList wird auch *leer* erzeugt!
TreeView("SetChildren",Tv&,TvRoot&,1)
whileloop 0,Count%-1
Node&=ocxMethod(NodeList&,"Item",&loop)
Auflisten(Node&,TvRoot&)--rekursiver Aufruf *dieser* PROC
ocxRelease(Node&)
endwhile
endif
ocxRelease(NodeList&)
endproc-------------------------------------------------------------
var File$="X:Books.xml"-----------------Demo-Datei von MSDN
var File$="X:Delain - April Rain.wpl"--WMP-Wiedergabeliste + Schleichwerbung ;-)
var File$="X:Manifest.xml"-------------externes Manifest
var File$="RES://X:PROFAN.EXE/24/1"----internes(!) Manifest
var Tv&=create("TreeView",%hwnd,0,10,10,600,400)
sendmessage(Tv&,$111B,20,0)-- Höhe 20 px sieht besser aus
ocxInit()
var Xml&=ocxCreate("Msxml2.DOMDocument")
ocxMethod(Xml&,"load",File$)
Auflisten(Xml&,0)
ocxRelease(Xml&)
ocxDeInit()
ref='./../../Function-References/XProfan/waitkey/'>waitkey
shining still right interestingly To his, if one sees, what everything in this stature stored becomes
HTH Pascal |
|
|
| |
|
|
|
Jörg Sellmeyer | I Have The Books.xml of here [...] uses. with Your new code I get very a entry
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 12/30/09 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Jörg!
here another Minimal-example: CompileMarkSeparationwindow 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 | this is the Result:
here's a manifest.xml, The by me functions:
<?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 ... | 12/30/09 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hi Jörg!
too with your XML no Problems apparently becomes with you The File not loaded. Überprüf still time whom Dateipfad! (Have Yes - How always - no Fehlerabfrage installed)
BTW:...räusper... the X: to Books.xml is my drive and has nothing with the functions To do... would have been I Perhaps allude should...
HTH Pascal |
|
|
| |
|
|
|
| |
|
| |
|
|