Toon posts:

[XML] Hierarchie van bestanden vastleggen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zou voor het verwerken van mappen en bestanden (en nog wel meer dingen), graag XML bestanden willen gebruiken waarbij de mappen en bestanden hierarchisch verwerkt en weergegeven kunnen worden.

nu vraag ik me af wat jullie van de volgende code vinden, ik weet namelijk zeker dat er nog dingen verbeterd kunnen worden (tis dus een opzetje wat ik net in 5min heb gemaakt)
(het uiteindelijke resultaat, moet platform onafhankelijk worden)

XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<drive path="C" label="test" size="0" size_used="0" attributes="groot?">
    <folder name="temp" size="0">
        <file name="a.txt" size="0"/>
        <folder name="b-test" size="0">
            <file name="a.txt" size="0"/>
        </folder>
        <file name="c.txt" size="0"/>
        <file name="d.txt" size="0"/>
        <folder name="testa" size="0">
            <file name="a.txt" size="0"/>
        </folder>
        <folder name="testb" size="0">
            <file name="b.txt" size="0"/>
        </folder>
    </folder>
</drive>

[ Voor 169% gewijzigd door Verwijderd op 26-11-2005 02:22 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Je vergeet heel wat attributen...zijn die niet van belang? Ik denk onder andere aan rechtenstructuur, alleen lezen-flag, archief-flag, enz.

Daarnaast heeft een XML file maar één root-node, en tenzij je per XML file maar één drive mogelijk wil maken, heb je nog een <drivelist>-tag ofzo nodig. Verder vind ik je notatie van de file-tag vaag, waarom niet gewoon de korte versie:
XML:
1
<file name="a.txt" size="0" />


Als laatste puntje is het me een raadsel waarom je de folder-tags op regels 4, 9 en 12 indent, maar dat heeft weinig met je vraag te maken. :P

edit:
Ow, en op regel 4 gebruik je ook ineens enkele quotes in plaats van dubbele, dat is ook niet echt consequent. :+

[ Voor 11% gewijzigd door NMe op 26-11-2005 01:13 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Bedankt voor je reactie, de door jou als eerst genoemde attributen komen er uiteraard in.

Wat je zegt over een root-node ben ik compleet met je eens, meerdere drives moeten gebruikt kunnen worden.. even kijken wat hier op te verzinnen valt :)

en idd die indents horen er niet in evenals de door mij gebruikte sluit tags, zal hem even aanpassen
en / gebruiken :)

edit: beetje jammer dat een attributes="drwxrwxrwx" formaat niet met windows te gebruiken is :o

[ Voor 66% gewijzigd door Verwijderd op 26-11-2005 01:29 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op zaterdag 26 november 2005 @ 01:17:
edit: beetje jammer dat een attributes="drwxrwxrwx" formaat niet met windows te gebruiken is :o
Je zal inderdaad iets generieks moeten gebruiken dat geldt voor elk bestandssysteem. Overigens kun je wel degelijk iets maken dat de FAT/NTFS-rechtensetten kan converteren naar een Linux-achtig formaat. Daarbij kun je er dan voor kiezen om onbekende of niet relevante rechtengegevens gewoon een apart teken te geven dat normaal niet voorkomt. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
'Overigens kun je wel degelijk iets maken dat de FAT/NTFS-rechtensetten kan converteren naar een Linux-achtig formaat.'

Juist, als je samba gebruikt gebeurd precies het zelfde lijkt mij - maar even 1 2 3 een oplossing hier voor verzinnen.. zit er voor vandaag niet meer in denk ik :D

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-04 02:19
Sowieso is het slim om gegevens zo veel mogelijk te normaliseren. In plaats van <drive path="C:\"> zou ik dus liever <drive letter="C"> kiezen (het gaat tenslotte om de letter, want met C:/ kom je er net zo goed op diezelfde drive terecht.)

Vervolgens ligt het voor de hand die drives niet óók nog eens in je files en folders te vermelden. Je folder wordt dus <folder name="temp"> (in plaats van <folder name="C:\temp">). Het pad kun je altijd zelf wel gemakkelijk reconstrueren; onzin om die data dan redundant op te slaan.

Verwijderd

Topicstarter
Eensch, ik heb m'n XML 'indeling' aangepast.

Als iemand nog suggesties heeft over hoe ik attributen crossplatform kan gebruiken, dan zou ik daar uiteraard heel blij mee zijn :)

(edit: attributes="groot?" staat tijdelijk alleen achter de drive.. kijk er maar even overheen, deze zou nl ook voor files/folders gebruikt moeten worden)

[ Voor 34% gewijzigd door Verwijderd op 26-11-2005 02:27 ]

Pagina: 1