| 

.NET C# Java Javascript Exception

1
Wenn ich ich mir einen Quelltext geben lass von einer Webseite und den in einen string schreibe.
Wie kann ich da bestimmte Tags auslesen bzw. href="XX".
Am besten in ein Array schreiben, da ich alle werte von eine Seite haben will die sind ca. so.

<ul class="X"> // Der Cointainer in dem sind mehrer solche Container wie unten

//Container1
<li class="X2">
<div class="X3">
<a class="X4" href="URL1" tabindex="-1" titel>
</a>
</div>
</li>

//Container1

//Container2
<li class="X2">
<div class="X3">
<a class="X4" href="URL1" tabindex="-1" titel>
</a>
</div>
</li>

//Container2

</ul>


Ich hoffe ihr wisst wie ich das meine. : )

Vielen Dank schonmal = )
News:
19.03.2011
Gast
11 2
zu den Container oben die class="X" ist bei allen container gleich, nur in einem container verschieden, die container sind immer gleich aufgebaut.
– Gast 19.03.2011
5 Antworten
2
Grundlegend lässt sich dies mit Regular Expressions erledigen. Insofern ich die Frage richtig verstanden habe. Mit welcher Funktion dies gemacht wird hängt davon ab welche Programmiersprache Du verwendest.
19.03.2011
SensenMannLE 1,2k 2 9
2
Beispiel in VB.NET

Dim sb As StringBuilder = New StringBuilder 
' StringBuilder mit dem Text der Homepage füllen '
' sb.append(...) '
Dim regex As RegularExpressions.Regex = _
New RegularExpressions. _
Regex("(?:href=(?:[""'])([\w\d:#@%/;$()~_?\+-=\\\.&]*)(?:[""']))")

Dim mc As MatchCollection = regex.Matches(sb.ToString())
Dim list As List(Of String) = New List(Of String)
For Each m As Match In mc
list.Add(m.Groups(1).Value)
Next
19.03.2011
Fredo 575 1 9
Fredo 575 1 9
In dem Pattern gibt es eigentlich zwischen "=" und "." drei "\". Ein ist vom Code-Vorschau verschluckt worden.
Fredo 19.03.2011
1
Vielen Dank schonmal.
Ich verwende C#.

Regular Expressions ist ein gutes Stichwort. : )
19.03.2011
ZebRa 221 1 8
1
Ok... für ZebRa. In C# (ist nota bene nicht meine Sprache, ich hoffe, es gibt keinen Fehler)
StringBuilder sb = new StringBuilder();
// StringBuilder mit dem Text der Homepage füllen
// sb.append(...)
Regex regex =
new Regex("(?:href=(?:[\"'])([\\w\\d:#@%/;$()~_?\\+-=\\\\\\.&]*)(?:[\"']))");
MatchCollection mc = regex.Matches(sb.ToString());
List<String> list = new List<String>();
foreach (Match m in mc)
{
list.Add(m.Groups[1].Value);
}
19.03.2011
Fredo 575 1 9
Bekomme viele Links aber sind irgentwie anderen. o.O
Zwar von der Seite aber mmm....
ZebRa 19.03.2011
Ich verstehe nicht ganz. Vielleicht habe ich deine Frage falsch verstanden. Damit kriegst du alle Texte, die in einem href-Tag enthalten sind. Also bei href="URL1" wirst du "URL1" bekommen. Und zwar alle im String. Du musst den Code für deine Bedürfnisse evtl. anpassen, optimieren, testen. Oder die Frage bzw. das Problem präziser schildern.
Fredo 19.03.2011
1
Also wenn es nur um Links geht, die sich innerhalb eines Containers mit der Klasse X befinden, dann gibt's hier ein Stück Beispielcode.
19.03.2011
Daniel Kuppitz 596 1 7
Danke, das hat mir sehr geholfen.
ZebRa 19.03.2011

Stelle deine Html-Frage jetzt!