Avatar billede flashit Nybegynder
18. august 2004 - 15:43 Der er 11 kommentarer og
1 løsning

loop .jpg og opret xml fil

Hej E.

Jeg har en mappe med en masse .jpg filer i.
Kan man få en .net funktion til at løbe alle filerne igennem og derefter oprette en xml fil
Se eks, neden for:

<IMAGE>
    <NAME>Billede1.jpg</NAME>
   
</IMAGE>
<IMAGE>
    <NAME> Billede2.jpg</NAME>
</IMAGE>

?

Eller skal man gribe det an på en helt anden måde?
Avatar billede flashit Nybegynder
18. august 2004 - 15:46 #1
ps. eks gerne i vb.net :-)
Avatar billede arne_v Ekspert
18. august 2004 - 16:08 #2
Imports System
Imports System.IO
Imports System.Xml

Public Class MyUtilities
    Public Shared Function DirToXml(Dir As String, Pat As String) As XmlDocument
        Dim doc As XmlDocument = New XmlDocument
        Dim root As XmlElement = doc.CreateElement("IMAGES")
        doc.AppendChild(root)
        Dim files As String() = Directory.GetFiles(Dir, Pat)
        For Each f As String In files
            Dim elm As XmlElement = doc.CreateElement("IMAGE")
            elm.AppendChild(doc.CreateTextNode(f.ToString))
            root.AppendChild(elm)
        Next
        DirToXml = doc
    End Function
End Class

kaldes som:

Dim res As XmlDocument = MyUtilities.DirToXml("C:\", "*.jpg")
Avatar billede arne_v Ekspert
18. august 2004 - 16:11 #3
Hov den skriver directory navn med.

Det gør den her version ikke:

Public Class MyUtilities
    Public Shared Function DirToXml(Dir As String, Pat As String) As XmlDocument
        Dim doc As XmlDocument = New XmlDocument
        Dim root As XmlElement = doc.CreateElement("IMAGES")
        doc.AppendChild(root)
        Dim files As String() = Directory.GetFiles(Dir, Pat)
        For Each f As String In files
            Dim elm As XmlElement = doc.CreateElement("IMAGE")
            elm.AppendChild(doc.CreateTextNode((New FileInfo(f)).Name))
            root.AppendChild(elm)
        Next
        DirToXml = doc
    End Function
End Class
Avatar billede arne_v Ekspert
18. august 2004 - 16:13 #4
Og du kan gemme XML dokumentet som fil med:

res.Save("jpg.xml")
Avatar billede flashit Nybegynder
18. august 2004 - 17:56 #5
Super, Arne v

Jeg kigger på det i aften når det er blevet ro i huset :-)
Avatar billede flashit Nybegynder
18. august 2004 - 21:15 #6
Hej Arne

Det køre jo bare fint :-)

Dog udskriver den følgende:
<IMAGES>
  <IMAGE>IMG_0224.JPG</IMAGE>
  <IMAGE>IMG_0225.JPG</IMAGE>
</IMAGES>

hvor jeg gerne vil have at den udskriver:

<IMAGES>
  <IMAGE><NAME>IMG_0224.JPG</NAME></IMAGE>
  <IMAGE><NAME>IMG_0225.JPG></NAME></IMAGE>
</IMAGES>

Kan man rette det til? .-)
Avatar billede arne_v Ekspert
18. august 2004 - 21:17 #7
Selvfølgelig kan man det !
Avatar billede arne_v Ekspert
18. august 2004 - 21:18 #8
Public Class MyUtilities
    Public Shared Function DirToXml(Dir As String, Pat As String) As XmlDocument
        Dim doc As XmlDocument = New XmlDocument
        Dim root As XmlElement = doc.CreateElement("IMAGES")
        doc.AppendChild(root)
        Dim files As String() = Directory.GetFiles(Dir, Pat)
        For Each f As String In files
            Dim elm As XmlElement = doc.CreateElement("IMAGE")
            Dim subelm As XmlElement = doc.CreateElement("NAME")
            subelm.AppendChild(doc.CreateTextNode((New FileInfo(f)).Name))
            elm.AppendChild(subelm)
            root.AppendChild(elm)
        Next
        DirToXml = doc
    End Function
End Class

burde ordne det
Avatar billede flashit Nybegynder
18. august 2004 - 21:25 #9
Super.... Mange tak :-)
Avatar billede flashit Nybegynder
18. august 2004 - 21:26 #10
vil det sige at man bare kan oprette nye xmlEmementer inden i hinanden ved at oprette endnu en?
Avatar billede arne_v Ekspert
18. august 2004 - 21:28 #11
Ja du kan neste elementer så dybt som du nu vil.

Der er også andre måder at generere XML på i .NET framework, men et sådant
DOM træ her synes jeg passede godt til opgaven.
Avatar billede flashit Nybegynder
18. august 2004 - 21:30 #12
ok det er da smart.
Jeg skal på .net framework kursus hele næste uge, så der lære jeg forhåbentligt meget mere.
Men endnu en gang tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester