У меня есть этот XML:
<Meals>
<Meal>
<Food course="starter">Soup</Food>
<Food course="mains">Fish</Food>
<Food course="dessert">Ice cream</Food>
</Meal>
<Meal>
<Food course="starter">Soup</Food>
<Food course="mains">Chicken</Food>
<Food course="dessert">Cheese</Food>
</Meal>
<Meal>
<Food course="starter">Melon</Food>
<Food course="mains">lamb</Food>
<Food course="dessert">Ice cream</Food>
</Meal>
</Meals>
И это выражение XPath:
//Food[@course='dessert' and text() = 'Ice cream']
Это находит каждый десертный курс мороженого. Я хочу добавить новый элемент после каждого соответствующего элемента, например, так:
<Meals>
<Meal>
<Food course="starter">Soup</Food>
<Food course="mains">Fish</Food>
<Food course="dessert">Ice cream</Food>
<Review>enjoyed</Food>
</Meal>
<Meal>
<Food course="starter">Soup</Food>
<Food course="mains">Chicken</Food>
<Food course="dessert">Cheese</Food>
</Meal>
<Meal>
<Food course="starter">Melon</Food>
<Food course="mains">lamb</Food>
<Food course="dessert">Ice cream</Food>
<Review>enjoyed</Food>
</Meal>
</Meals>
Как я могу сделать это в C #, учитывая это выражение XPath? Выражение может измениться (например, вместо выбора сети), и структура XML также может измениться. Независимо от того, новый элемент должен быть вставлен после каждого соответствующего элемента.
Я знаю, что в XElement есть метод AddAfterSelf, но я не знаю, как использовать его в коллекции XElements, которую может вернуть выражение XPath.