Я играю с xml и c # wpf, я хочу искать в простом файле xml и модифицировать определенный XElement каждый раз, когда я его находил. Вместо того, что содержится в этой строке, я хочу поместить все, что я пишу в текстовое поле, фактический код таков, и на данный момент мне удалось только как изменить один конкретный элемент
private void Button_Click(object sender, RoutedEventArgs e)
{
string xmlFilePath = @"C:\Users\codroipomad\Desktop\slave\Test.xml";
XDocument xdoc = XDocument.Load(xmlFilePath);
XNamespace ns = "http://www.fruitauthority.fake";
var elBanana = xdoc.Descendants()?.Elements(ns + "FruitName")?.Where(x => x.Value == "Banana")?.Ancestors(ns + "Fruit");
var elColor = elBanana.Elements(ns + "FruitColor").FirstOrDefault();
//check se il file esiste,se non esiste lo crea
if (!File.Exists(xmlFilePath))
{
File.Create(xmlFilePath).Dispose();
if (elColor != null)
{
elColor.Value = box.Text;
}
}
//se il file esiste setta il colore con valore pari al valore della textbox
else if (File.Exists(xmlFilePath))
{
if (elColor != null)
{
elColor.Value = box.Text;
}
}
xdoc.Save(xmlFilePath);
}
xml, которыйЯ использую это (я вставил его как фрагмент HTML, потому что я нашел только такой способ показать это вам)
<?xml version="1.0" encoding="utf-8"?>
<FruitBasket xmlns="http://www.fruitauthority.fake">
<Fruit>
<FruitName>Banana</FruitName>
<FruitColor>pinuzzo</FruitColor>
</Fruit>
<Fruit>
<FruitName>Apple</FruitName>
<FruitColor>Red</FruitColor>
</Fruit>
<Fruit>
<FruitName>Banana</FruitName>
<FruitColor>feffolo</FruitColor>
</Fruit>
<Fruit>
<FruitName>Apple</FruitName>
<FruitColor>Red</FruitColor>
</Fruit>
<Face>
<Name>Banana</Name>
<Eyes>feffolo</Eyes>
</Face>
<Face>
<Name>Apple</Name>
<Eyes>Red</Eyes>
</Face>
</FruitBasket>
В этом случае я просто хочу изменить всеFruitColor THA ПРОГРАММА МОЖЕТ НАЙТИ