2017-11-03 1 views
0

Ich habe eine XML wie folgt.Wie kann man einen Wert von einem XML-Code in ein Label zurückholen?

<Manifest Type="File"> 
<FilesList> 
    <FileItem> 
     <Version>v1.0</Version> 

Wenn die exe geöffnet wird, wie bekomme ich den Wert und überschreiben die Bezeichnung? Btw, ich brauche "StartupPath", um das XML-Verzeichnis anzuzeigen.

Um einfacher zu sein, ich will es genau wie dieses Bild, aber mit XML. (Nur ein zufälliges Bild) https://support.kaspersky.com/images/home_ksmac_8421_02_en13-145521.jpg

+0

Ist das die gesamte XML-Datei? Sind alle diese Knoten danach geschlossen oder haben Sie eine andere Wurzel (außer Manifest) und mehrere FileItem usw.? – djv

+0

nicht die gesamte xml, nur der Anfang – mvydvyspy

Antwort

1

Sie XML-Serialisierung verwenden können XML-Dateien in .NET

Machen Sie einige Klassen für die XML-Datei Modell

Public Class Manifest 
    <System.Xml.Serialization.XmlElement> 
    Public Property FilesList As FilesList 
    <System.Xml.Serialization.XmlAttribute> 
    Public Property [Type] As String 
End Class 

Public Class FilesList 
    <System.Xml.Serialization.XmlElement> 
    Public Property FileItem As FileItem 
End Class 

Public Class FileItem 
    <System.Xml.Serialization.XmlElement> 
    Public Property Version As String 
End Class 

und laden Sie die Datei wie folgt

lesen
Dim s As New Xml.Serialization.XmlSerializer(GetType(Manifest)) 
Dim m As Manifest 
Using sr = New System.IO.StreamReader("XmlFile1.xml") 
    m = DirectCast(s.Deserialize(sr), Manifest) 
End Using 
Dim labelText = m.FilesList.FileItem.Version 

Hinweis: Ich fragte nach der XML-Datei in einem Kommentar, und Sie sagten, das ist nur der Anfang. So über das Modell geht davon aus, dass die vollständige Datei sieht wie folgt aus

<?xml version="1.0" encoding="utf-8" ?> 
<Manifest Type="File"> 
    <FilesList> 
    <FileItem> 
     <Version>v1.0</Version> 
    </FileItem> 
    </FilesList> 
</Manifest> 

und wenn es nicht müssen Sie das Modell anzupassen dh Dinge Arrays machen, wenn es mehr als einen (FileItem zum Beispiel) ist und Zugriff es angemessen, so m.FilesList.FileItem.Version würde Änderungsbedarf.

+0

Hier ist der gesamte xml https://pastebin.com/Zz9rHZ7x Sorry, ich hätte dies zuerst teilen:/ – mvydvyspy

+1

Sie haben mir gerade beigebracht, wie XML-Attribute zu serialisieren/deserialisieren! Vielen Dank! (Ich habe XML Serialisierung nicht so viel studiert, bitte hasse nicht;)) –

+0

@mvydvyspy: Autsch, das war ein großer XML. Es wäre besser, das zu einem String zu lesen und stattdessen [nur einen Wert erhalten] (https://stackoverflow.com/a/5623107). –

Verwandte Themen