Webbrowser Element soll URlaus XML öffnen

  • VB.NET
  • .NET (FX) 4.0

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von sonne75.

    Webbrowser Element soll URlaus XML öffnen

    Hallo,

    wie bekomme ich es hin, das Webbrowser.navigate eine URL aus einer XML Datei herausliest und dann öffnet?


    XML:
    <MenuItem id = "Grundbuchauskunft" OnClick="http://google.de"/>

    Danke
    Ich habe folgendes hinbekommen:

    Das Menü oder Button lesen die gesamte XML Datei ein.

    XML-Quellcode

    1. <root>
    2. <TopLevelMenu id="&amp;Verfügbare Portale">
    3. <MenuItem id = "A" OnClick="http://google.de"/>
    4. <MenuItem id = "B" />
    5. <MenuItem id = "C">
    6. <MenuItem id ="Mail"/>
    7. </MenuItem>


    Daraus bildet sich dann z.B. das Menü. Wenn im XLM ein OnClick gefunden wird, dann gibt es eine Sprungmarke zum EventHandler. Mein Problem ist nun, das ich jetzt dort webbrowser.navigate(Adresse) eintragen könnte. Da würde auch gehen.Aber dann wäre das ja statisch. Ich möchte, das die URL von Onclick bei Adresse aus der XML hinterlegt ist. Es scheitert mal wieder am Verständnis zur Übergabe. Sicherlich könnte ich mit Stream nach etwas suchen, aber das möchte ich nicht, weil ich ja nicht die gesamte Datei anzeigen will

    VB.NET-Quellcode

    1. Dim urlstr As String = IO.Path.Combine(Application.StartupPath, "Test.xml")
    2. WebBrowser1.Navigate(urlstr)



    VB.NET-Quellcode

    1. Dim reader As XmlReader Dim myXMLDoc As New XmlDocument
    2. reader = XmlReader.Create("C:\users\Paul\desktop\daten.xml") myXMLDoc.Load(reader)
    3. Dim myNode As XmlNode = myXMLDoc.SelectSingleNode("/Personen/Person/@Titel") myNode = myNode.FirstChild
    4. TextBox1.Text = myNode.Value.ToString


    Ghet auch nicht, weil ich ja keinen Node auslesen will, sondern nur ein Teil von Node - das OnClick

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Doener“ ()

    Dein Problem ist nicht der Code (ja ich weiß wo du den herkopiert hast) denn /Personen/Person/@Titel kam mir bekannt vor. Weiters passt es ja garnicht zu deiner Aufgabenstellung.
    Dein Problem ist eher das du noch immer krampfhaft versucht dein vorhaben zusammenzuschustern ;) ohne die Grundlagen zu kennen
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    Das Problem ist doch nicht die XML Datei und dessen Standard...Alles was im XML zwischen "" steht, wird als Menütext angezeigt und das geht auch wunderbar. Nur wenn ich sowas wie a href da rein schreibe, dann klappt das mit dem Menü nicht mehr. Es geht also um das >< Zeichen. Leider wird aus der XML nur das aus dem "" übernommen, OnClick wird im Menü nicht als Link verstanden. Darum möchte ich, das ich per Funktion die XML nochmal durchsuche und dann als Webbrowser.navigate öffne.
    Wenn ich das einfüge, geht mein Menü nicht mehr.
    <?xml version="1.0" encoding="utf-8" ?>

    Kann man das nicht so lösen, das ich es zwar eine XML Datei ist, diese aber wie eine TXT behandelt wird? Dann fällt doch schon das Reader Problem weg, oder?

    Doener schrieb:

    nicht aber einen Wert innerhalb der Zeile


    Du suchst in dieser Zeile nach "OnClick=", wenn du es findest, nimmst du alles, was danach kommt und schneidest mit .Substring() die letzten 2 Zeichen weg. Der Rest ist deine URL in Anführungszeichen, die musst du, denke ich, auch wegschneiden.
    Wenn ich aber die Zeilennummer statisch vorgebe, dann ist es nicht mehr flexibel. Jetzt kommt wieder das Logik Problem. Ich muss die gesamte Datei nach der Zeile absuchen, aus dem der Menütext herkommt und dann würde der Rest mit dem wegschneiden ja gehen. Nur wie suche den ersten Teil?
    Du liest doch sowieso Zeile für Zeile ein, in einer Schleife. In dieser Schleife weist du dem Menüpunkt den Namen zu. Und gleich überprüfst du, ob OnClick dabei ist.
    Mir ist übrigens eingefallen, es ist viel einfacher per Split zu suchen:

    VB.NET-Quellcode

    1. 'in deiner Schleife
    2. 'zeile ist die aktuelle Zeile
    3. Dim temp = zeile.Split("OnClick=""")' drei """, weil wir " am Anfang gleich wegschneiden wollen und es sonst nicht erkannt wird
    4. Dim Url As String
    5. If temp.Length>0 Then
    6. Url=temp(1).Substring(0,temp(1).Length-3) '3 letzte Zeichen wegschneiden
    7. ' und jetzt diesen Link öffnen
    8. End If
    9. 'Schleife weiter