Avatar billede decrypto Nybegynder
10. januar 2007 - 17:37 Der er 3 kommentarer og
1 løsning

Løbe en mappe med xml dokumenter igennem.

Jeg har behov for at løbe en mappe med xml dokumenter igennem.
fx. "c:\documents\xml\"

For hver enkel af xml dokumentet skal jeg 'malke' indholdet af nogle elementer igennem, som jeg skal smide ind i en hashtabel.
Hvor Key er ordet/indholdet af et element.
Hvis ordet/indholdet eksisterer allerede skal jeg bare tælle Item indholdet op som er et tal.


Xml dokumentet kan fx. se således ud....

<xml>
.
.
.
<elementer>
  <element1>Eksperten</element>
</elementer>
<elementer>
  <element2>Juletræ</element2>
</elementer>
</xml>

Indholdet af elementerne skal smides i en hash tabel.
Avatar billede aaberg Nybegynder
11. januar 2007 - 08:52 #1
private Hashtable ScanFolder(string folderPath)
        {
            string[] allFiles = Directory.GetFiles(folderPath);

            Hashtable textNodeCounts = new Hashtable();

            foreach (string fileName in allFiles)
            {
                FileInfo file = new FileInfo(fileName);
                if (file.Extension == ".xml")
                {
                    XmlDocument xmlDoc = new XmlDocument();
                    FileStream xmlStream = file.OpenRead();
                    try
                    {
                        xmlDoc.Load(xmlStream);
                    }
                    catch (XmlException xe)
                    {
                        throw new XmlException("Der er fejl i følgende xmldokument: " + fileName + ". Se inner exception for mere info", xe);
                    }
                    finally
                    {
                        xmlStream.Close();
                    }

                    XmlNodeList allTextNodes = xmlDoc.SelectNodes("//text()");

                    foreach (XmlNode textNode in allTextNodes)
                    {
                        if (textNodeCounts.ContainsKey(textNode.Value))
                        {
                            int oldval = (int)textNodeCounts[textNode.Value];
                            textNodeCounts[textNode.Value] = oldval + 1;
                        }
                        else
                        {
                            textNodeCounts.Add(textNode.Value, 1);
                        }
                    }
                }
            }
            return textNodeCounts;
        }
Avatar billede decrypto Nybegynder
11. januar 2007 - 19:03 #2
Mange tak....fik ellers ordnet det.
Avatar billede decrypto Nybegynder
11. januar 2007 - 19:03 #3
Smid du bare et svar ind for point.
Avatar billede aaberg Nybegynder
11. januar 2007 - 19:21 #4
svar
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