HtmlElement: Wie komme ich an das class Attribute?
-
Ich habe ein HtmlElement und würde von dem gerne die class auslesen,aber mit GetAttribute erhalte ich nur einen leeren String.Ich könnte OuterHtml auseinander nehmen aber das ist ziemlich unelegant.Weiss jemand warum man mit GetAtrribute nicht an die class kommt?
-
Warum liest du nicht die Property CssClass?
-
Weil die in HtmlElement nicht gibt?
-
Mein Fehler, du nutzt ja das HtmlElement aus System.Windows.Forms.
Wenn ein Leer-String zurückkommt, ist das Attribut vermutlich leer. Bist du dir denn sicher, das das class-Attribut auch gefüllt ist bzw. existiert?
-
Ich bin sicher. Ich habe es ausprobiert indem ich "<html><body><div class="X" id="test"></div></body></html>" in Documenttext gegeben haben. Und mit webbrowser1.Document.All["test"].GetAttribute("class") abgefragt hab.An das Attribute id kam ich ohne Probleme ran aber class war leer.
-
Die MSDN gibt da leider auch nicht viel her.
Daher rate ich jetzt einfach mal so ins blaue:
Fülle doch mal das div mit ein bischen Text und versuch es nochmal.
-
In der Version die nicht nur zum Testen ist hat das Element natürlich einen Inhalt.Wenn du keine Idee mehr hast werde ich eben OuterHtml auseinander nehmen.
-
Falls es noch jemanden interessiert, auf der Seite http://www.codeproject.com/KB/mobile/MSDNDownloader.aspx fand ich das Zitat:
"HtmlElement has a GetAttribute() method, but it won't work if you specify a class attribute. A bit unexpected, but after some MSDN reading, I found that className must be specified to read the class attribute. All other attributes can be read under their own names."
Also um es kurz zu machen, statt getAttribute("class") einfach getAttribute("classname") verwenden und schon geht's. Was die Spezialisten von MS aber dazu bewogen hat, hier vom eigentlichen Attributnamen abzuweichen, wüsste ich selbst auch ganz gerne.