| 

.NET C# Java Javascript Exception

0
Ich will alle Tags einer HTML-Datei auflisten. Möglichst mit den Attributen. Wie mache ich das?
25.01.2011
2 Antworten
0
Sofern das HTML valides X(HT)ML ist, geht das super simpel:

XElement xmlTree = new XElement("Root",
new XAttribute("Att1", "AttributeContent"),
new XElement("Child",
new XText("Some text"),
new XElement("GrandChild", "element content")
)
);
IEnumerable<XElement> de =
from el in xmlTree.Descendants()
select el;
foreach (XElement el in de)
Console.WriteLine(el.Name);

Ergibt: "Child", "GrandChild". Zusätzlich zu el.Name kannst Du natürlich auch auf die Attribute zugreifen, oder auf sonst alles, was Du brauchst.
25.01.2011
Golo Roden 2,7k 3 9
0
Mittels Regex:

Schritt 1: alle HTML-Tags mit Attribute raussuchen:
<(?<Tag>([A-Za-z0-9])*?){1}(?<Attr>(|\s.*?))(|\/)>

Ergebnis:
Group "Tag":
HTML
BODY
DIV

Group "Attr":
http-equiv="Content-Language" content="en-us" 
http-equiv="Content-Type" content="text/html; charset=utf-8"
http-equiv="X-UA-Compatible" content="IE=8"

src="NewTabPageScripts.js" language="javascript" type="text/javascript"
type="text/css"


Schritt 2: alle Attribute auslesen

((?<Name>[A-Za-z0-9-_]*?)\s*=\s*(?<Value>"[^"=]*?"))

Ergebnis:
Group "Name":
http-equiv
content
http-equiv
http-equiv
src

Group "Value":
"Content-Language"
"en-us"
"Content-Type"
"X-UA-Compatible"
"NewTabPageScripts.js"
"javascript"
"text/javascript"


Anmerkung:

Der Regex-Ausdruck zum Value-Parsen ist noch nicht ganz fertig da er "content="IE=8"" nicht erkennt. Mir fehlt gerade aber die Zeit ihn weiter auszubauen.
25.01.2011
Floyd 14,5k 3 9

Stelle deine Html-Frage jetzt!