HtmlAgilityPack: Wie bekomme ich den Wert vom div-Tag in C# / ASP.NET?

Ich habe eine Schwierigkeit. Ich will den Wert von dem <div>-Tag in C# bekommen. Ich will, dass das Label3 den Wert von dem Tag ausgibt.

Hier ist der HTML-Code:

<div size="10" id="para1"></div>
<p></p>
<asp:Label ID="Label2" runat="server" Text="" Font-Size="XX-Large"></asp:Label>
<p></p>
<asp:Label ID="Label3" runat="server" Text="" Font-Size="XX-Large"></asp:Label>
<script>
  document.getElementById("para1").innerHTML = formatAMPM();

  function formatAMPM() {
    var d = new Date(),
        days = [ 'sonday', 'monday', 'tuesday', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag' ];
    return days[d.getDay()];
  }
</script>

In der aspx.cs-Datei verwende ich das hier:

HtmlDocument page = new HtmlWeb().Load(@"D:\Downloads\wichtig\try\WebApplication1-Kopie-Kopie\MeineWebseite\löschen\WebForm2.aspx");
var title = page.DocumentNode.SelectSingleNode("//div[@id='para1']");
Label3.Text = title.ToString();

Aber es geht nicht. Ich habe im Internet gelesen, dass man HtmlAgilityPack installieren müsste, was ich dann gemacht habe.

Bisher klappt es bei mir nur, den Namen vom Tag darzustellen:

document2.Load(@"D:\Downloads\wichtig\try\WebApplication1-Kopie-Kopie\MeineWebseite\löschen\WebForm2.aspx");
string tag = document2.GetElementbyId("para1").Name;
Label2.Text = tag;

Aber ich will, dass das jetzige Datum in Label3 dargestellt wird, wie

<div>id="para1</div>

So sieht das Resultat aus:

Ich hoffe, dass man mich versteht.

LG

HtmlAgilityPack: Wie bekomme ich den Wert vom div-Tag in C# / ASP.NET?
Computer, HTML, Programmieren, JavaScript, ASP.NET, C Sharp, Visual Studio
1 Antwort
vb.net - Mehrere aktive Formen (Deadlock)?

Guten Tag

Aufgrund langem Code und eher unüblichem Problem vorerst die Ausgangslage:

Das Programm hat die Funktion ein Kopierverlauf zu erstellen, welcher dann bei klick vom Mausrad in Form eines ContextMenu auftaucht. (Also kein richtiges GUI) Nun hat das Programm aber die Unterfunktion das man Reminder hinzufügen kann. Dazu habe ich noch ein GUI (fAddReminder). Nun will ich über eine dritte Form (fMsg) dem Benutzer Benachrichtigungen zeigen (Notify.ToolTip funktionieren nicht richtig im Geschäft und sind für meine Benachrichtigungen ungeeignet). Damit das "Kopierverlaufs-ContextMenu" immer reagiert, habe ich einen FileSystemWatcher in der Benachrichtigungsform, damit ich einfach eine Datei erstellen kann und der FileSystemWatcher dann in der fMsg darauf reagiert (Somit muss ich im Mainthread keine Methode aufrufen, welche dann den Mainthread blockieren würde). Durch das FileSystemWatcher.Created Event wird der MSG_SHOW sub aufgerufen, welcher dann in einem DoEvents Loop* und somit Benachrichtigung und Kopierverlauf unabhängig von einander dargestellt werden. (Und auf Benutzereingabe reagieren!)

DoEvents Loop

    Do Until closeMe
      Application.DoEvents()
    Loop

Nun zum Problem:

Der Benutzer soll die Benachrichtigung anklicken können und die fAddReminder Form soll mit allen Einstellungen des Reminders geöffnet werden. Somit muss ich ja theoretisch aus dem DoEvents Loop* die fAddReminder Form öffnen. Habe das ganze mit folgenden Ansätzen probiert:

  • VisibleChanged Event (sobald Benachrichtigung verschwindet), bei welchem auf eine Variable "openReminder" geprüft wird, falls diese True ist, wird wieder eine Datei erstellt, auf welche der FIleSystemWatcher (in Benachrichtigungsform) reagiert und dann den Sub() fAddReminder.ShowMe() aufgerufen wird. - Fazit: Form erscheint tot (Auch mit Invoke etc.)
  • Genau dasselbe wie oben: Nachdem der DoEvents Loop* verlassen wurde, wird eine Datei erstellt - selbes Resultat
  • Evenfalls nach dem DoEvents Loop* wird der Sub() aufgerufen - selbes Resultat

Wie schaffe ich es, dass das Programm (der Mainthread) die Methode aufruft auch wenn sich die Form in einem toten Loop befindet? Bin komplett überfordert, es muss doch eine Lösung geben?

Kann schlecht dem ganzen Code posten, sind rund 1'500 Zeilen..

Vielen Dank für deine Bemühungen!

Visual Basic, ASP.NET, vb.net
1 Antwort

Meistgelesene Fragen zum Thema ASP.NET