Heb me suf gezocht op Google en GoT, maar ik kan nergens een oplossing vinden...
Ik heb een XML bestand met elementen erin, daarmee wil ik afhankelijk van het type de elementen matchen. Als het type "url" is wil ik het [b]text[b]- en het script-attribuut matchen en in een variabele stoppen.
Onderstaand is mijn XML string en de regex die ik nu heb (ingekort voor het voorbeeld):
Ik wil de matches uiteindelijk als volgt in een array stoppen:
Ik heb een XML bestand met elementen erin, daarmee wil ik afhankelijk van het type de elementen matchen. Als het type "url" is wil ik het [b]text[b]- en het script-attribuut matchen en in een variabele stoppen.
Onderstaand is mijn XML string en de regex die ik nu heb (ingekort voor het voorbeeld):
JavaScript:
Ik heb de XML string expres rommelig gelaten, zodat ik mijn regex zo goed mogelijk kan schrijven en niet te snel denk dat ie al volledig is.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| var xmlstr ='<?xml version="1.0" encoding="iso-8859-1"?>'+ '<tree id="0">'+ ' <item im0="folder_close.gif" im1="folder_close.gif" im2="folder_close.gif" type="map" id="1138862556812" open="1" text="Welkom" ></item>\n'+ ' <item im0="macro_url_icon.gif" im1="macro_url_icon.gif" im2="macro_url_icon.gif" type="url" script="http://www.google.nl" id="1138863292203" text="Google" closeable="0" ></item>\n'+ '</tree>'; var re = /<item\b(type\s*\=\s*\"url\")[^>]*>/g; var tags = xmlstr.match(re); if (tags) { var re2 = /\bscript\s*\=\s*\"([^"]*)\"\s+text\s*=\s*\"([^"]*)\"/g; var attrs = []; for (var i = 0; i < tags.length; i++) { // Nog onvolledig... attrs[i] = tags[i].match(re2); } alert( attrs ); } |
Ik wil de matches uiteindelijk als volgt in een array stoppen:
JavaScript:
Waar ik vastloop is volgens mij bij het matchen van attributen met een onbepaalde volgorde. Alvast bedankt voor de hulp!
1
2
3
| var links = []; links['http://www.google.nl'] = 'Google'; // etc etc... |
[ Voor 15% gewijzigd door Verwijderd op 09-03-2006 11:22 ]