Avatar billede stuffedk Nybegynder
07. september 2008 - 21:19 Der er 17 kommentarer

Søg i Streng

Hej. Jeg har et javascript som jeg gerne vil have til at requeste en side og vise hvilken værdi der står i et felt. Det med requestet har jeg fundet ud af, men nu har jeg så bare en variabel med en masse kildekode i. Hvordan får jeg fundet frem til den værdi jeg leder efter? Jeg ved jo hvad der står før og efter værdien...
Avatar billede montago Praktikant
07. september 2008 - 21:46 #1
med Regex...

kom med det udsnit du kender... og den værdi du gerne vil have ud
Avatar billede stuffedk Nybegynder
07. september 2008 - 21:57 #2
hvis nu jeg gerne vil læse det der står i body f.eks. Husk at alt dette (og mere til) er i en stor variabel!

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
  </note>
Avatar billede montago Praktikant
07. september 2008 - 22:09 #3
snakker vi om 1 match... eller flere ?

den XML du kommer med, er fra w3schools.. og den kan komme i en sequence:

<notes>
  <note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
  </note>
  <note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
  </note>
</note>
Avatar billede montago Praktikant
07. september 2008 - 22:11 #4
ellers er svaret :

var Match = MyDocument.match( /<body>(.+?)</body>/gi )[0];
Avatar billede montago Praktikant
07. september 2008 - 22:12 #5
hvis du henter XML, skal du kigge lidt på dette svar :

http://www.eksperten.dk/spm/843550
Avatar billede montago Praktikant
07. september 2008 - 22:26 #6
forresten...

var Match = MyDocument.match( /<body>(.+?)</body>/gi );

finder faktisk alle forekomster i:
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
  <body>Don't forget me this weekend!</body>
</note>

men du skal så loope dem igennem bagefter:

for(var i=0; i<Match.length; i++)
{
  var udpluk = Match[i]
}
Avatar billede olebole Juniormester
08. september 2008 - 13:40 #7
<ole>

- og naturligvis skal du ikke bruge RegExp, men XML-DOM eller XPath, som er beregnet til lige netop denne type opgaver ... opgaver i XML  ;o)

/mvh
</bole>
Avatar billede montago Praktikant
08. september 2008 - 14:55 #8
hey ole

det HAR jeg allerede sagt til ham...

/*
hvis du henter XML, skal du kigge lidt på dette svar :

http://www.eksperten.dk/spm/843550
*/
Avatar billede olebole Juniormester
08. september 2008 - 16:28 #9
Nuvel, men da enhver jo kan se, der er tale om XML, mente jeg bare ikke, der var grund til at fabulere over tænkte scenarier, som ikke har med XML at gøre  =)
Avatar billede montago Praktikant
08. september 2008 - 16:33 #10
... nej for tænk hvis han lærte noget andet end XML-DOM... *chock*
Avatar billede olebole Juniormester
08. september 2008 - 16:44 #11
*ROTFLMAO* Jamen, hvis du synes, han skal lære at bruge en skævbidder til at banke en skrue i et brædt - i stedet for at bruge en skruetrækker - så værsågod!  :D

Da koden allerede ligger i en XML-parser, mener jeg blot, at det er mest hensigtsmæssigt at bruge XML-DOM - fremfor selv at skrive en parser med RegExp  ;o)

At du så har besluttet dig for at være principielt uenig med mig i alt, må være et problem, du selv slås med!
Avatar billede montago Praktikant
08. september 2008 - 18:58 #12
efterhånden bliver dine poster et mere og mere desperat forsøg på at svine mig til, for ikke at tabe ansigt... eller for at pleje dig ego.

jeg skrev udtrykkeligt, at hvis han modtog XML, burde han kigge på mit andet eksempel. Hvor svært er det at forstå ?

At kunne Regex er en fantastisk ting! Man kan gøre så afsindig mange nyttige ting, hvis man kan Regex. Og som i dette tilfælde, er det langt hurtigere at skrive end at pakke den store DOM værktøjskasse ud...
Avatar billede olebole Juniormester
08. september 2008 - 19:30 #13
Jamen, værktøjskassen _har_ han allerede pakket ud! Koden ligger jo i en DOMParser eller et XMLHttpRequest object ... hvorfor så ikke bruge værktøjet, der ligger tilgængeligt i det pågældende objekt?

Det er ikke mig, der sviner dig til. Jeg påpeger blot, når du skriver ting, der ikke er hensigtsmæssige eller direkte forvrøvlede. Såvidt jeg husker, er det dig, der får spørgsmål og artikler lukket - og dig, der har for vane at kalde mig for 'kvaj'!

Det er ikke mig, der er bange for at tabe ansigt - og det er ikke mig, der er desparat - og det er heller ikke mig, der ikke kan finde ud af at overholde Ekspertens regler!
Avatar billede montago Praktikant
08. september 2008 - 19:33 #14
nu går du igang igen...

du må undskylde jeg ikke taler i simple termer...

Med "værktøjskassen", mente jeg al den ekstra kode man skal fremstille, for at få noget ud af DOM metoderne.
Avatar billede olebole Juniormester
08. september 2008 - 20:14 #15
Det skal du ikke undskylde ... tankers og termers kompleksitet har det jo med at hænge sammen  =)

Skal du skrive mere kode med XML-DOM eller XPath, end med RegExp? Hvad er det for 'al den ekstra kode', du taler om?
Avatar billede olebole Juniormester
08. september 2008 - 20:18 #16
- og da vi ikke ved, om XML dokumentet er hentet med et XMLHttpRequest objekt eller med en DOMParser, kan det endda være, du skal have hevet hele serilisations værktøjskassen frem for at få fat i XML'en i strengform - i hvertfald i FF
Avatar billede montago Praktikant
08. september 2008 - 20:45 #17
du bliver ved !

- du sviner mig/folk til
- du tror kun XML-DOM er løsningen på alle HTML/JS problemstillinger
- du kommer aldrig med løsninger, fordi dem du vil have folk laver, tager for lang tid.
- du vifter om dig med begreber, for at virke større/bedre end os andre.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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