У меня есть XML, и он содержит несколько тегов <b>
.Я хочу удалить некоторые из них в зависимости от XElement
.Поэтому, если XElement
равно <h1>
, <h2>
, <h3>
, <bq>
или <fc>
, я хочу удалить теги <b>
из их соответствующих значений.
В настоящее время я являюсьиспользуя foreach
, чтобы сделать это, и это работает, но я хочу использовать только один LINQ
.
Это мой код:
foreach (var item in xdoc.Descendants("h1"))
{
if (item.Elements("b").Count() > 0)
{
itemvalue = item.Value.Replace("<b>", String.Empty).Replace("</b>",String.Empty);
item.SetValue(itemvalue);
}
}
foreach (var item in xdoc.Descendants("h2"))
{
if (item.Elements("b").Count() > 0)
{
itemvalue = item.Value.Replace("<b>", String.Empty).Replace("</b>",String.Empty);
item.SetValue(itemvalue);
}
}
foreach (var item in xdoc.Descendants("h3"))
{
if (item.Elements("b").Count() > 0)
{
itemvalue = item.Value.Replace("<b>", String.Empty).Replace("</b>",String.Empty);
item.SetValue(itemvalue);
}
}
foreach (var item in xdoc.Descendants("bq"))
{
if (item.Elements("b").Count() > 0)
{
itemvalue = item.Value.Replace("<b>", String.Empty).Replace("</b>",String.Empty);
item.SetValue(itemvalue);
}
}
foreach (var item in xdoc.Descendants("fc"))
{
if (item.Elements("b").Count() > 0)
{
itemvalue = item.Value.Replace("<b>", String.Empty).Replace("</b>",String.Empty);
item.SetValue(itemvalue);
}
}
Я хочу что-то вроде:
xdoc.Descendants().Where(el => (el.Name.LocalName == "h1" || el.Name.LocalName == "h2" || el.Name.LocalName == "h3"
|| el.Name.LocalName == "bq" || el.Name.LocalName == "fc") && el.Value.Contains("</b>"))...Replace;
Возможно ли?