Español
Foro

XML Bearbeitung

 

Christian
Hahn
¡Hola a todos,

ha alguien una Concepto cómo XML/XHTML Dokumente en una Verzeichnisbaum (DOM) einlesen, bearbeiten y otra vez speichern kann? Ideal dafür währe de "Pascal" TvConti1. Am besten es wahrscheinlich una Umsetzung en Ensamblador, wegen Geschwindigkeit, oder hay ya Module (DLL?).
Das XML Formato findet sí siempre mehr Verbreitung y uno debería así auch en XProfan algo anfangen puede, especialmente en lo que sí freie XSLT-Prozessoren para Umwandeln en otro Datenformate (z.B. [...]  ) son, así puede ser auch el Wohlgeformtheit prüfen.

Mi Vorstellung:
XML Expediente en Baum invitar -> Elemente einfügen, löschen oder bearbeiten -> como XML speichern y/oder encima XSLT-Prozessor como z.B json exportieren

Auf cada Fall Yo no Plan!

Einen guten Resbalón y viel Erfolg en el Jahr 2010 wünscht
Christian Hahn
 
Windows XP und Profan10 | Homepage... | Folge mir...
29.12.2009  
 



Irgendwo Tuve veces a la einfachen XML-Parser Nuevo, hier podría uno zwischen Objekten, Nodes, ... unterscheiden y simplemente propio Métodos einfügen - finds no... war glaube después de [...]  entstanden.

Egal, "heute sería ego eh anders machen" - así una xml.inc para XProfan existiert desafortunadamente (todavía) no aber wäre spätestens con [...]  una Parser esta programmierbar el auch blitzschnell ser podría.

Wenn Interesse, entonces kann Yo así una pequeña XML-Parser später auch otra vez vormachen. Um el Baum innerprogrammlich a "merken" (no Darstellung!) y para einfache Handhabung beim Einfügen/Löschen/Editar de Nodes, sería Yo aber una einfache ListBox nehmen deren Einträge z.B. al Ende una Einrückungszähler besitzen. Somit liesse se auch blitzschnell Suchen.

Das Carta entonces de XML es una eigener Spass, braucht uno aber auch no Libs oder DLL para - einfaches XML-Zeugs en XProfan sería I <300 Zeilen schätzen also kleine Fleißarbeit.

Das Aufwändigste wäre imho una schöner Editor!

Vlt. ha Roland aber auch para XProfan12 algo para Thema XML en el Petto, wer weiß.
 
29.12.2009  
 




Christian
Hahn
So una Parser wäre ya no schlecht.
Lo besteht auch todavía el Möglichkeit encima una AktiveX-Objeto (msxml.dll) encima "Pascals" OcxPackage. Nur blicke Yo en DLL todavía viel weniger por.
 
Windows XP und Profan10 | Homepage... | Folge mir...
29.12.2009  
 



Z.B.:

+ Expediente en String invitar
+ Cuerdas en el String en Platzhalter tauschen z.B. x01ID y así rausfiltern (q a q suchen a kein q mehr enthalten)
+ Alle Tabs y Doppelten Freizeichen o. unnütze Signo con Translate$ lünchen solange a no mehr como
+ Explode(upper(s),"<")

... y Usted hast schonmal el Schlimmste encima native Schleifen abgearbeitet - also bastante fix.

Das zurückgegebene Array kann nun simplemente runtergerasselt voluntad de uno Función, el sólo todavía einzelne Anweisungen/Cuerdas verarbeiten muss y no mehr el problema ha, sólo todavía el XML a parsen.
 
29.12.2009  
 




Uwe
''Pascal''
Niemeier
Hi Personas!

Wenn Yo zweimal en un Hilo erwähnt voluntad, muß Yo mich sí informe

Tatsächlich puede ser por ActiveX anscheinend muy simplemente XML zugreifen:
KompilierenMarcaSeparación
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

Das Problema es: Yo habe algo como de ni idea de XML...
Wenn Yo el correcto sehe, se como así ne Art de Directorio-Struktur gespeichert?
Mit Parents y Children?

Tiempo bastante allgemein a ocx: Damit läßt se praktisch alles umsetzen,
qué auch con irgendeiner Scriptsprache posible es.
Wenns also Beispiele para VBS oder JS son...

HTH
Pascal
 
30.12.2009  
 




Jörg
Sellmeyer
Hast Usted el ocxinfo.inc auch ya irgendwo hochgeladen?

Ok - gefunden: [...] 

Hm - en me krachts beim ersten ocxGet(Child1&,"NodeName")
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
30.12.2009  
 




Uwe
''Pascal''
Niemeier
Hi Jörg!

Laß dir el ermittelten ObjektHandles ausgeben; como es wahrscheinlich ne Null dazwischen.
Im Zweifelsfall müßtest du veces una betroffene XML bereitstellen.

Posesiones inzwischen algo rumgebastelt:
KompilierenMarcaSeparación
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='./../../funktionsreferenzen/XProfan/waitkey/'>waitkey

Scheint doch bastante interessant a ser, si uno sieht, qué alles en diesem Formato gespeichert se

HTH
Pascal
 
30.12.2009  
 




Jörg
Sellmeyer
Yo el Books.xml de hier [...]  verwendet. Mit Deinem neuen Code bekomme Yo genau una Eintrag


9 kB
Hochgeladen:30.12.2009
Ladeanzahl192
Descargar
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
30.12.2009  
 




Uwe
''Pascal''
Niemeier
Hi Jörg!

Hier todavía una Minimal-Ejemplo:
KompilierenMarcaSeparación
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
Es el Ergebnis:



Hier es una manifest.xml, el en me 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
Ladeanzahl160
Descargar
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
30.12.2009  
 




Uwe
''Pascal''
Niemeier
Hi Jörg!

Auch con deiner XML no Problemas
Anscheinend se en dir el Expediente no geladen. Überprüf doch veces el Dateipfad!
(Hab sí - como siempre - no Fehlerabfrage instalado)

BTW:...räusper... el X: antes Books.xml es mein Laufwerk y ha nichts con el Características a tun...
Hätte Yo tal vez erwähnen debería...

HTH
Pascal
 
31.12.2009  
 



Vlt. al besten File por:
KompilierenMarcaSeparación
proc furi

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

endpr
 
31.12.2009  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

17.880 Views

Untitledvor 0 min.
Thomas Zielinski02.08.2024
Axel Berse12.07.2024
H.Brill14.06.2023
Erasmus.Herold06.01.2023
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie