/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
xml-php på en nem måde???
Fra : PhoX


Dato : 23-06-01 22:49

hmm, jeg leder efter en xml-php parser som ikke lige ligner dem jeg har set
på hotscripts.com, for jeg vil gerne udnytte muligheden for en træstruktur
dog uden at læse hele filen ind i memory (ligesom DOM) og de normale xml
parsefunktioner er lavet som hvis jeg ville bruge xml'en som en 3D SQL DB (x
antal tables med y antal cols og z antal rows) men jeg vil mere,, som det
fremgår af DTD'en herunder lægger jeg op til en stor træstruktur hvor det
vil være passende hvis man kunne bede om data pr. sti,,, dette er DTD'en:
>>
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v3.5 NT (http://www.xmlspy.com) by () -->
<!ELEMENT vlan (admin, groups)>
<!ELEMENT admin (mpw, gcpw*)>
<!ELEMENT mpw (#PCDATA)>
<!ELEMENT gcpw (#PCDATA)>
<!ATTLIST gcpw
num NMTOKEN #REQUIRED
used (0 | 1) #REQUIRED
>
<!ELEMENT groups (grp*)>
<!ELEMENT grp (grpn, gcmnt, gmpw, gnpw, gcinfo, hosts, news)>
<!ATTLIST grp
name NMTOKEN #REQUIRED
>
<!ELEMENT grpn (#PCDATA)>
<!ELEMENT gcmnt (#PCDATA)>
<!ELEMENT gmpw (#PCDATA)>
<!ELEMENT gnpw (#PCDATA)>
<!ELEMENT gcinfo (gcts, gcip)>
<!ELEMENT gcts (#PCDATA)>
<!ELEMENT gcip (#PCDATA)>
<!ELEMENT hosts (host*)>
<!ELEMENT host (hstn, hcmnt, hpw, lli, lip, lic, hcinfo, hnews, hmail)>
<!ELEMENT hstn (#PCDATA)>
<!ELEMENT hcmnt (#PCDATA)>
<!ELEMENT hpw (#PCDATA)>
<!ELEMENT lli (#PCDATA)>
<!ELEMENT lip (#PCDATA)>
<!ELEMENT lic (#PCDATA)>
<!ELEMENT hcinfo (hcts, hcip)>
<!ELEMENT hcts (#PCDATA)>
<!ELEMENT hcip (#PCDATA)>
<!ELEMENT hnews (lnr, nsnd, authart*, artnote*)>
<!ATTLIST hnews
nnote (1 | 0) #REQUIRED
rnote (1 | 0) #REQUIRED
>
<!ELEMENT lnr (#PCDATA)>
<!ELEMENT nsnd (#PCDATA)>
<!ELEMENT authart (artname, lar)>
<!ATTLIST authart
artid NMTOKEN #REQUIRED
>
<!ELEMENT artnote (artname, lar)>
<!ATTLIST artnote
artid NMTOKEN #REQUIRED
>
<!ELEMENT artname (#PCDATA)>
<!ELEMENT lar (#PCDATA)>
<!ELEMENT hmail (lmread, lmrec, msnd, msg*)>
<!ELEMENT lmread (#PCDATA)>
<!ELEMENT lmrec (#PCDATA)>
<!ELEMENT msnd (#PCDATA)>
<!ELEMENT msg (mrec, mfrom, msubj, msgtxt)>
<!ATTLIST msg
msgid NMTOKEN #REQUIRED
>
<!ELEMENT mrec (#PCDATA)>
<!ELEMENT mfrom (#PCDATA)>
<!ELEMENT msubj (#PCDATA)>
<!ELEMENT msgtxt (#PCDATA)>
<!ELEMENT news (lnewnws, lnewrepl, noa, article*)>
<!ELEMENT lnewnws (#PCDATA)>
<!ELEMENT lnewrepl (#PCDATA)>
<!ELEMENT noa (#PCDATA)>
<!ELEMENT article (atime, afrom, asubj, artshort, arttxt, areply*)>
<!ATTLIST article
artid NMTOKEN #REQUIRED
nor CDATA #REQUIRED
>
<!ELEMENT atime (#PCDATA)>
<!ELEMENT afrom (#PCDATA)>
<!ELEMENT asubj (#PCDATA)>
<!ELEMENT artshort (#PCDATA)>
<!ELEMENT arttxt (#PCDATA)>
<!ELEMENT areply (rtime, rfrom, rtxt)>
<!ELEMENT rtime (#PCDATA)>
<!ELEMENT rfrom (#PCDATA)>
<!ELEMENT rtxt (#PCDATA)>
<<
det ville være sindsygt at skulle parse det linie for linie eller på een
gang (som de parsere gør som jeg finder på hotscripts.com)
findes der ingen parser til php som kan create/edit og outputte som
træstruktur??

fx:

$groupcomment =
functionenjeglederefter("/vlan/groups/grp(name:anygroup)/gcmnt","output")

og så den bare giver mig data fra den sti???

eller

$unusedgcpw = function("/vlan/admin/gcpw(used:0)","output")

for at få en array med alle gcpw's med attributen "used" sat til 0???

jeg ved det er en ond xml der vil komme ud af denne DTD, men det er ment til
at være hjertet i et virtual lan system,, (som jeg allerede har lavet
baseret på en god håndfuld txt filer :)

PhoX





 
 
Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408868
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste