2 Stimmen

Erweitertes Ersetzen in C#

Ich möchte einige Attribute innerhalb einer Xml (String) mit c# ersetzen.

Beispiel xml:

<items>
  <item x="15" y="25">
    <item y="10" x="30"></item>
  </item>
  <item x="5" y="60"></item>
  <item y="100" x="10"></item>
</items>

In diesem Fall möchte ich die x-Attribute auf den kombinierten Wert von x und y ändern.

Ergebnis xml:

<items>
  <item x="40" y="25">
    <item y="10" x="40"></item>
  </item>
  <item x="65" y="60"></item>
  <item y="100" x="110"></item>
</items>

10voto

Jon Skeet Punkte 1325502

Bitte tun Sie dies nicht mit einer Regex. Es ist wirklich einfach mit etwas wie LINQ to XML:

XDocument doc = XDocument.Load("input.xml");
foreach (var item in doc.Descendants("item"))
{
    int x = (int) item.Attribute("x");
    int y = (int) item.Attribute("y");
    item.SetAttributeValue("x", x + y);
}
doc.Save("output.xml");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X