Jag använder javascript för att ladda ner HTML-dokument och undersöka dem. Ladda ner dokumenten vet jag hur jag ska göra med XmlHttpRequests. Det jag gör nu är att jag använder indexOf och substring för att leta reda på saker och ting i det jag har laddat ner.
Jag vill hitta ett bättre sätt. Om jag till exempel har en bild i ett nerladdat dokument som jag vet har denna form:
<img id="ett_id" src="http://domän/bild.gif" />
Så vill jag plocka ut http://domän/bild.gif, eller mer generellt allt mellan <img id="ett_id" src=" och " />.
Men jag vill göra det med hjälp av regular expressions eller ännu hellre genom att parsa filen som xml och läsa ut attributen. Någon som har en idé?
Peter SMedlem sedan dec. 20025 483 inlägg Med re är det inga problem att parsa attribut. För ditt exempel kan det se ut enligt följande:
var doc = "..."; // Antag att du läst in dokumentet i denna variabel
var re = /<img id="\w*" src="([\w\/\.:]*)" \/>/gi,
elm;
while (elm = re.exec(doc))
alert(elm);
}
I while-loopen når du sedan src-värdena med elm[1].
Notera att du kanske får ange fler tillåtna src-tecken än vad jag gjort.
:)
dectgapMedlem sedan sep. 20021 655 inlägg Varför inte söka bland nod-träden genom DOM?
Eftersom de gör det på http://developer.apple.com/internet/webcontent/XMLHttpRequestExample/example.html antar jag att du också kan göra det.
jag kanske borde satsa på DOM-modellen.
Men tills jag lär mig mer om detta: Hur ska Peters exempel utformas om taggen kan ha andra attribut än id och src, och jag dessutom vill ha ut ett specifikt id?
spangoMedlem sedan juni 20008 205 inlägg Det är skitjobbigt (relativt arbetsinsatsen som krävs för att köra med DOM).
var dinRequest = skapaOchLaddaEnXmlHttpRequest();
var imgID = "ett_id";
alert("bilden finns på " + dinRequest.responseXML.getElementByID(imgID).src);