Avatar billede nielsandersen Nybegynder
14. februar 2005 - 15:07 Der er 7 kommentarer og
1 løsning

finde tekst i string

Hvis man nu skulle lave en funktion der kunne finde alle værdier
alder + navn i nedenstående tekststreng. Hvordan ville  såen funktion se ud ?

<NewDataSet> <Person> <ALDER>1</ALDER> <Navn>1</Navn> </Person> <Person> <ALDER>2</ALDER> <Navn>2</Navn> </Person> <Person> <ALDER>3</ALDER> <Navn>3</Navn> </Person> <Person> <ALDER>4</ALDER> <Navn>4</Navn> </Person> <Person> <ALDER>5</ALDER> <Navn>5</Navn> </Person> <Person> <ALDER>6</ALDER> <Navn>6</Navn> </Person> <Person> <ALDER>7</ALDER> <Navn>7</Navn> </Person> <Person> <ALDER>8</ALDER> <Navn>8</Navn> </Person> <Person> <ALDER>9</ALDER> <Navn>9</Navn> </Person> <Person> <ALDER>10</ALDER> <Navn>10</Navn> </Person> <Person> <ALDER>11</ALDER> <Navn>11</Navn> </Person> <Person> <ALDER>12</ALDER> <Navn>12</Navn> </Person> <Person> <ALDER>13</ALDER> <Navn>13</Navn> </Person> <Person> <ALDER>14</ALDER> <Navn>14</Navn> </Person> <Person> <ALDER>15</ALDER> <Navn>15</Navn> </Person> <Person> <ALDER>16</ALDER> <Navn>16</Navn> </Person> <Person> <ALDER>17</ALDER> <Navn>17</Navn> </Person> <Person> <ALDER>18</ALDER> <Navn>18</Navn> </Person> <Person> <ALDER>19</ALDER> <Navn>18</Navn> </Person> <Person> <ALDER>20</ALDER> <Navn>18</Navn> </Person> </NewDataSet>
Avatar billede arne_v Ekspert
14. februar 2005 - 15:09 #1
Brug regular expression !
Avatar billede nielsandersen Nybegynder
14. februar 2005 - 15:11 #2
det tænkte jeg også på men vidste ikke lige hvordan det skulle gøres ?+
Avatar billede arne_v Ekspert
14. februar 2005 - 15:14 #3
using System;
using System.Text.RegularExpressions;

class MainClass
{
    public static void Main(string[] args)
    {
        test(@"<NewDataSet> <Person> <ALDER>1</ALDER> <Navn>1</Navn> </Person> <Person> <ALDER>2</ALDER> <Navn>2</Navn> </Person> <Person> <ALDER>3</ALDER> <Navn>3</Navn> </Person> <Person> <ALDER>4</ALDER> <Navn>4</Navn> </Person> <Person> <ALDER>5</ALDER> <Navn>5</Navn> </Person> <Person> <ALDER>6</ALDER> <Navn>6</Navn> </Person> <Person> <ALDER>7</ALDER> <Navn>7</Navn> </Person> <Person> <ALDER>8</ALDER> <Navn>8</Navn> </Person> <Person> <ALDER>9</ALDER> <Navn>9</Navn> </Person> <Person> <ALDER>10</ALDER> <Navn>10</Navn> </Person> <Person> <ALDER>11</ALDER> <Navn>11</Navn> </Person> <Person> <ALDER>12</ALDER> <Navn>12</Navn> </Person> <Person> <ALDER>13</ALDER> <Navn>13</Navn> </Person> <Person> <ALDER>14</ALDER> <Navn>14</Navn> </Person> <Person> <ALDER>15</ALDER> <Navn>15</Navn> </Person> <Person> <ALDER>16</ALDER> <Navn>16</Navn> </Person> <Person> <ALDER>17</ALDER> <Navn>17</Navn> </Person> <Person> <ALDER>18</ALDER> <Navn>18</Navn> </Person> <Person> <ALDER>19</ALDER> <Navn>18</Navn> </Person> <Person> <ALDER>20</ALDER> <Navn>18</Navn> </Person> </NewDataSet>");
    }
    private static void test(string s)
    {
        MatchCollection res = Regex.Matches(s,"(?:<ALDER>)([^<]*)(?:</ALDER)(?:.*?)(?:<Navn>)([^<]*)(?:</Navn)");
        for(int i = 0; i < res.Count; i++) {
            Console.WriteLine(res[i].Groups[2] + " = " + res[i].Groups[1]);
        }
    }
}
Avatar billede arne_v Ekspert
14. februar 2005 - 15:15 #4
Det er jo også valid XML, så du kunne også parse det som XML, men jeg tror
at regex er nemmere i dette tilfælde.
Avatar billede nielsandersen Nybegynder
14. februar 2005 - 15:23 #5
hvis man nu skulle bnytte din anden løsning. Skulle man så konvetere dokument til xml og derefter lave xpath osv for at det ønskede data frem ??
Avatar billede nielsandersen Nybegynder
14. februar 2005 - 15:34 #6
og du må godt komme med et svar
Avatar billede arne_v Ekspert
14. februar 2005 - 15:38 #7
svar
Avatar billede arne_v Ekspert
14. februar 2005 - 15:38 #8
Jeg ville nok snarere lave en GetElementsByTag på "Person" og så hapse
childs fra de noder der kommer ud af det.
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