| 

.NET C# Java Javascript Exception

3
Ich möchte den Textinhalt einer HTML-Datei haben, muss dazu alle HTML-Tags löschen. Hat jemand eine Idee, wie das gehen könnte?
News:
25.02.2011
Pikachu 31 2
1
Falls Du es nicht weisst: Diese Seite funktioniert nach dem Prinzip, das man Antworten bewertet und richtige Antworten als solche Kennzeichnet, da die User hier kostenlos helfen und nur durch Reputation "belohnt" werden.
Jens Duczmal 26.02.2011
5 Antworten
5
Du schreibst leider nicht, in welcher Programmiersprache Du arbeitest. Deshalb wähle ich erst einmal C#. Das Du die Datei selber einlesen kannst, setzte ich gerade voraus. Ansonsten müsstest Du schon konkrete Hinweise auf die gewünsche Sprache mitteilen.

Ungetestet:
using System.Text.RegularExpressions;

const string pattern = "<.*?>";

static string remoteTags (string inputString)
{
return Regex.Replace
(inputString, pattern, string.Empty);
}


Hier noch ein weiterer Link mit umfangreicheren regulären Ausdrücken

Und zwei Möglichkeiten mit Java (Regex und javax.swing.text.html.HTMLEditorKit)

Edit:
Wenn wir schon einmal dabei sind, es geht auch komplett ohne Programmierkenntnisse.
Für Firefox gibt es ein Plugin, welches das Kontextmenü bei markiertem Text erweitert.

Extended Copy-Menu

Du öffnest dann mit Firefox die HTML-Seite, markierst alles mit Strg + A und wählst dann im Kontextmenü "Kopieren ohne Formatierung". Et voila. Zudem hat es den Vorteil, das Du auch nur Teile der HTML-Seite markieren kannst. Ist natürlich nur eine "für Zwischendurch"-Lösung, falls es Dir speziell nur manuell um einzelne Webseiten geht.
25.02.2011
Jens Duczmal 2,6k 1 3 9
Jens Duczmal 2,6k 1 3 9
1
Die strip_tags PHP-Methode als Extension-Method in C# in 3 Varianten:

static class StringExtensions
{
static Regex TagRegex = new Regex("</?(?<TagName>.*?)>", RegexOptions.Compiled);

public static string StripTags(this string html)
{
return TagRegex.Replace(html, string.Empty);
}

public static string StripTags(this string html, string allowedTags)
{
var tags = (from Match m in TagRegex.Matches(allowedTags)
select m.Groups["TagName"].Value).ToList();

return TagRegex.Replace(html, (Match m) =>
tags.Contains(m.Groups["TagName"].Value) ? m.Value : string.Empty);
}

public static string StripTags(this string html, params string[] allowedTags)
{
return TagRegex.Replace(html, (Match m) =>
allowedTags.Contains(m.Groups["TagName"].Value) ? m.Value : string.Empty);
}
}


Verwendung:

void Main()
{
var html = "<p>This is a test with some <b>bold</b> and<br /> " +
"some <i>italic</i> words</p>";

Console.WriteLine(html.StripTags()); // Variante 1
Console.WriteLine(html.StripTags("<p><b>")); // Variante 2
Console.WriteLine(html.StripTags("b", "i")); // Variante 3
}
27.02.2011
Daniel Kuppitz 596 1 7
0
[gelöscht]
25.02.2011
Jens Duczmal 2,6k 1 3 9
Jens Duczmal 2,6k 1 3 9
0
In PHP gibt es für sowas eine einfache Lösung:
$text = strip_tags($text)

Besonders praktisch, falls bestimmte Tags doch erlaubt sein sollten:
$text = strip_tags($text, '<p><a>')

Die zweite Variante entfernt alle Tags, die nicht <p> oder <a> sind.
26.02.2011
huckepick 887 2 8
-2
Solch komplizierte Probleme kann man nur mit einer richtigen Programmiersprache (VBScript) lösen:

Dim sURL      : sURL          = "http://codekicker.de/"
Dim oHTMLFile : Set oHTMLFile = CreateObject( "HTMLFILE" )
Dim oXMLHTTP : Set oXMLHTTP = CreateObject( "Msxml2.XMLHTTP" )
oXMLHTTP.Open "GET", sURL, False
oXMLHTTP.Send

With oHTMLFile
.Open
.Write oXMLHTTP.responseText
.Close
WScript.Echo .body.innerText
End With


(gekürzte) Ausgabe:

getText - get text from .html
-------------------------------------------------------------------------------


login
|

Frage stellen
Fragen ansehen
Mehr...
» Themen » Mitglieder » Abzeichen » Ranking » Blog
» RSS-Feed » FAQ » Feedback» Startseite
2
Bewertungen
1
Antwort
5
Aufrufe
WPF TreeView-Knoten an Mausposition
Ich würde gerne in einem WPF-TreeView das Item an der aktuellen Mausposition ermitteln. Leider finde ich keine
Methode "GetNodeAt" oder ähnliches. Wie löst man das Problem also...
thomas.ccgdev 43
vor 104m
....
+712
Joachim
712 ● 7

Die codekicker-Elf »
Fragen und Antworten stehen unter der CC-Lizenz. Design und Code © codekicker.de 2011.
codekicker.de ist eine Fragen- und Antworten-Community zum Thema Programmieren. Beliebte Themen sind .NET, Jav
a, PHP, HTML, CSS, Python und viele mehr. FAQ | Impressum | Kontaktmail
===============================================================================
xplweb.vbs: Erfolgreich beendet. (0) [ 1.54297 secs ]
25.02.2011
Ekkehard.Horner 147 1

Stelle deine Html-Frage jetzt!