2016-10-24 2 views
0

Ich möchte einen Wert aus einer XML-Datei extrahieren und ich sah bereits einige Lösungen, aber ich konnte nicht eine finden, die für mich funktioniert.Holen Wert von XML-Datei

Hier ist meine Beispiel-XML-Datei

<Other TrashCodeSample="SampleTextHere"> 
    <Data key="SerialNumber">911987082611993854940173</Data><Data key="TrashNumber2">5346587345345</Data></Other> 

Ich habe bereits einige Codes (ich die Seriennummer extrahieren mag), aber es gibt mir nur den letzten Wert in „Data“

  XDocument doc = XDocument.Load(label3.Text); 

      var authors = doc.Descendants("Data"); 

      foreach (var author in authors) 
      { 
       textBox1.Text = (string) author; 
      } 

die Seriennummer wird der Wert i erhalten möchten:

<Data key="SerialNumber">911987082611993854940173</Data> 
  • wenn möglich ich die Seriennummer innerhalb des XML

es wäre leicht bearbeiten wollen, wenn ich nur ein „Data“ hatte, aber das ist nicht der Fall ..:/

+0

Mögliche Duplikat [Lesen von XML mit XmlReader in C#] (http://stackoverflow.com/questions/2441673/reading-xml-with-xmlreader-in-c-sharp) – Mark

Antwort

0

Wenn Sie LINQ und C# verwenden, versuchen Sie doc.Descendants("Data").First(d => (string)d.Attribute("key") == "SerialNumber"), um auf das data Element zuzugreifen. Sie können dann seine .Value Eigenschaft auslesen oder einstellen.

+0

es Gelöst Dank (: – RaINi

+0

tun Sie habe eine Idee, wie ich die Seriennummer ändern kann? – RaINi

+0

Ich schrieb, Sie können die '.Value' -Eigenschaft so festlegen' doc.Descendants ("Data"). Zuerst (d => (string) d.Attribute ("key") == "SerialNumber") = "1234567890"; 'ändert den Inhalt dieses' data' Elements. Sie müssen dann die 'doc.Save (" newfile.xml ")' Methode aufrufen, um sie in eine Datei zu speichern. –