English
Forum

XML Processing

 

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
 
Windows XP und Profan10 | Homepage... | Folge mir...
12/29/09  
 



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.
 
12/29/09  
 




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.
 
Windows XP und Profan10 | Homepage... | Folge mir...
12/29/09  
 



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.
 
12/29/09  
 




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:
CompileMarkSeparation
window 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
 
12/30/09  
 




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:
CompileMarkSeparation
window 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
 
12/30/09  
 




Jörg
Sellmeyer
I Have The Books.xml of here [...]  uses. with Your new code I get very a entry


9 kB
Hochgeladen:12/30/09
Downloadcounter192
Download
 
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:
CompileMarkSeparation
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
 
12/30/09  
 




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>

46 kB
Hochgeladen:12/30/09
Downloadcounter160
Download
 
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
 
12/31/09  
 



Perhaps. best File by:
CompileMarkSeparation
proc furi

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

endpr
 
12/31/09  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

17.906 Views

Untitledvor 0 min.
Thomas Zielinski08/02/24
Axel Berse07/12/24
H.Brill06/14/23
Erasmus.Herold01/06/23
More...

Themeninformationen



Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie