Hallo,
bräuchte mal Hilfe von euch.
Ich möchte gerne eine XML mit Linq rekursiv durchlaufen und stehe total auf dem Schlauch wie ich vorgehen soll.
Fange gerade an mich in Linq einzulesen und deshalb suche ich Hilfe.
Herr, schmeiss Hirn vom Himmel - Autsch!
Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.
Zuerst mal danke für die Links.
Komme aber trotzdem nicht weiter. Ich möchte jetzt gerne die Where-Klausel gerne auf das Attribute("V") des Elements("hnr") anwenden.
Habe es so probiert das brachte aber einen Fehler :
where hnr.Element("hnr").Attribute("V").Value == "7310950000"
Einen Tipp für mich?
try
{
var hnrs = from hnr in xml_Doc.Elements("body").Elements("hnr_liste").Elements("hnr").Elements("bsnr")
where hnr.Attribute("V").Value == "731095000"
select new
{
vBsnr = hnr.Attribute("V").Value,
vtBsnr = hnr.Attribute("VT").Value
};
foreach (var hnr in hnrs)
{
Console.WriteLine(" BSNR V: " + hnr.vBsnr + " BSNR VT: " + hnr.vtBsnr);
}
}
catch (NullReferenceException ex)
{
MessageBox.Show(ex.Message);
}
Hallo cpetit
Es wäre nützlich, wenn du sagst was für ein Fehler du bekommst.
Abgesehen davon sieht man das ja jetzt am Code, wobei ich dich auf [FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt verweisen kann.
Zerstückle die Abfrage mal auf einzelne Zeilen und nutze den Debugger um zu schauen was null ist, dann überlegst du logisch und behebst den Fehler.
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Habe noch ein paar Probleme.
Ich habe zwei xml-Dateien die ich gerne vergleichen will.
Habe bis jetzt folgendes gemacht.
Durchlaufe XML-1 und merke mir bei jedem durchlauf einen Wert den es in der XML auch nur einmal gibt. Dann filter ich mit der Where-Klausel beide XML und schreibe das Ergebnis jeweils in ein neues XElement.
Jetzt wollte ich beide XElement miteinander vergleichen mit "XNodeDocumentOrderComparer" der sagt mir aber das er nur XElemente aus der gleichen XML vergleichen kann. Sofern ich die Fehlermeldung richtig deuten kann.
System.InvalidOperationException {"Ein gemeinsames Vorgängerelement ist nicht vorhanden."}
Gibt es was anderes für die XElemente zu vergleichen?
So das mit dem vergleichen habe ich hinbekommen.
Was ich noch nicht hinbekommen habe ist das durchlaufen aller Elemente eines XElements.
Hat da jemand für mich einen Tipp wie ich das XElement rekursiv durchlaufen kann?