2016-05-15 9 views
0

Ich suchte eine lange Zeit, um eine Antwort zu bekommen, aber wie ich sehen kann, funktioniert nicht. Ich habe eine XML-Datei und möchte ein bestimmtes Element von einem Knoten lesen. Zum Beispiel ist dies die XML:C# Lesen Sie ein bestimmtes Element in einem XML-Knoten

<Root> 
    <TV> 
    <ID>2</ID> 
    <Company>Samsung</Company> 
    <Series>13523dffvc</Series> 
    <Dimesions>108</Dimesions> 
    <Type>LED</Type> 
    <SmartTV>Yes</SmartTV> 
    <OS>WebOS</OS> 
    <Price>1993</Price> 
    </TV> 
</Root> 

ich das ID-Element im Code als Variable zu bekommen, damit ich es für das nächste Element erhöhen kann, die mich hinzufügen. Dies ist der Code in diesem Moment, aber ich kann keine Möglichkeit finden, etwas aus dem Objekt selbst auszuwählen.

XDocument doc = XDocument.Load("C:TVList.XML"); 
XElement TV = doc.Root; 
var lastElement = TV.Elements("TV").Last() 
+0

Versuchen Sie 'TV.Attribute (" ID "). Wert;' – Sybren

+0

Danke @Sybren! Es klappt. –

+0

@AlexandruFlorin es kann nicht funktionieren, Sie haben keine Attribute in Ihrem XML, geschweige denn eine namens "ID"! –

Antwort

2

Eine Abfrage für die letzte TV-ID zu bekommen (diese 0 zurückkehren wird, wenn es sind keine Elemente):

var lastId = (int) doc.Descendants("TV") 
    .Elements("ID") 
    .LastOrDefault(); 

Vielleicht möchten Sie auch die höchste ID (falls sie nicht in Ordnung sind):

var maxId = doc.Descendants("TV") 
    .Select(x => (int)x.Element("ID")) 
    .DefaultIfEmpty(0) 
    .Max(); 

this fiddle für ein Arbeits Demo ansehen.

+0

Das ist richtig. Ich bin noch ein Anfänger und wenn ich keine Fehler in Visual Studio sehe, scheint es für mich richtig zu sein. Ihre Lösung funktioniert und es war sehr einfach :(. Vielen Dank für die Zeit, die Sie mir zugewiesen haben. –

2

Verwenden wie diese ID-Wert

XDocument doc = XDocument.Load(@"C:\TVList.XML"); 
XElement root = doc.Element("Root"); 
XElement tv = root.Element("TV"); 
XElement id = tv.Element("ID"); 
string idvalue = id.Value; 

auch Ihre <Type>LED</Tip> Tag von xml machen <Type>LED</Type> für Spiel

+0

Diese Lösung funktioniert auch. Vielen Dank für Ihre schnellen Antworten. :) Du warst sehr hilfreich. –

+0

Sie sind willkommen – Mostafiz

Verwandte Themen