Przeszukiwanie zserializowanego pliku XML i zmiana jednej wartości

0

Cześć,
mam taki problem ponieważ tworzę książkę z numerami
po wpisaniu danych są one serializowane.
Każdy wpis ma unikalne ID, problem w tym, że podczas ponownego otwarcia programu
chciałbym odnaleźć w pliku xml ostatnią wartość ID jaka została nadana po to aby w przypadku dodania nowego wpisu inkrementować ID, w jaki sposób mogę to zrobić?
I jeszcze jedno pytanie, w jaki sposób mogę w tym pliku dokładnie wyszukać jakiś string i zmienić jego wartość?
Przykładowo:

 <Name>qaz</Name>

i chcę zmienić tylko qaz na wsx.

2

Ostanie ID:

  • Na początku pliku zapisać ostatnie ID i później je odczytywać.
  • Jeżeli jeden wpis == jedna linia to policz ile jest linii i wtedy ostatnia == ostanie ID.
2

Najlatwiej bedzie tak jak napisal @Trebuh: Po prostu zserializuj ostatnie ID. Mozesz tez alternatywnie uzyc XmlReader (jesli nie mozesz zmienic formatu plikow) i po prostu zrobic cos w stylu:

using (XmlReader r = XmlReader.Create("plik.xml"))
{
  string lastId = null;
  while (r.Read())
  {
    if (r.NodeType == XmlNodeType.Element && r.LocalName == "NazwaTwojegoElementu" && e.Attributes["idLubJakkolwiekNazwalesTenAtrybut"] != null)
    {
      // jesli moga byc w losowej kolejnosci to powinienes sprawdzic czy te ID jest wieksze od ostatniego znalezionego
      lastId = e.Attributes["idLubJakkolwiekNazwalesTenAtrybut"];
    }
  }
  if (lastId != null)
  {
    Console.WriteLine("Ostatnie id: {0}", lastId);
  }
}
0

a druga część? Tzn. jak zamieniać poszczególny frazy?

1

Kilka sekund w Google nie zaszkodzi ;)

Czasami zamiast nauki programowania warto podszkolić korzystanie z przeglądarki i język angielski.

1

Ja polecam implementacje XDocument (System.Xml.Linq). Bardzo prosta w obsludze, poczytaj troche w internecie bo nie wydaje mi sie zeby ktos za Ciebie cale zadanie chcial zrobic.

1 użytkowników online, w tym zalogowanych: 0, gości: 1