C# Linq to XML hogyan törüöljünk elemet?

C# Linq to XML hogyan törüöljünk elemet?
2011-11-13T22:54:34+01:00
2011-11-14T00:13:27+01:00
2022-11-23T17:05:39+01:00
Anti91
Hello!
Olyan problémám volna, hogy nem igazán sikerül megoldanom hogy az alábbi XMl-ből kitudjak törölni megadott ID -jü "Arut"(Win Forms alkalmazás):
<aruk>
<Aru ID="2">
<Megnevezes>Valami</Megnevezes>
<Ar>100</Ar>
<Mennyiseg>2</Mennyiseg>
</Aru>
...
<aruk>

ilyen módon probálkoztam:
XElement aruk = XElement.Load("Aruk.xml");
aruk.Elements("Aru").Where(s => s.Element("ID").Value == x).Remove();

de el száll alábbi üzenettel:
"System.NullReferenceException: Object reference not set to an instance of an object."

bármilyen ötletet szivesen fogadok.
Mutasd a teljes hozzászólást!

  • Talán ezek a példák segítenek abban, hogyan kellene:

    1,
    XElement doc = XElement.Load("Books.xml"); //obtain the first Book IEnumerable<XElement> firstBook = (from b in doc.Elements( "Book") select b).Take(1); //delete book price foreach (XElement xe in firstBook) { xe.Attribute("price").Remove(); } doc.Save("Books.xml");


    2,

    public static Boolean Delete(Customer CustomerObj) { Boolean Flag = false; try { // XML document Full File Path String XmlFile=AppDomain.CurrentDomain.BaseDirectory+"Customers.xml"; // Load Xml Document System.Xml.Linq.XElement XDoc = System.Xml.Linq.XElement.Load(XmlFile); // Obtain single customer data from XML file by passing CustomerID IEnumerable<System.Xml.Linq.XElement> Query = (from Q in XDoc.Elements("Customer") where Q.Element("ID").Value == Convert.ToString(CustomerObj.ID) select Q); // Check the count is grether thae equal 1 if (Query.Count() >= 1) { // Remove the element foreach (System.Xml.Linq.XElement X in Query) { X.Remove(); } // Save the Xml File XDoc.Save(XmlFile); Flag = true; } } catch (Exception ex) { throw new Exception(ex.Message); } return Flag; }
    Mutasd a teljes hozzászólást!
  • Köszi a segítséget, hála az egyik példának rájöttem mi volt a hibám elképzelésemben
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd