Регулярные выражения плохо обрабатывают данные XML / HTML. Вам лучше использовать настоящий API для чтения HTML или XML. Регулярные выражения сталкиваются с проблемами, когда вы имеете дело с HTML, в котором есть вложенные теги, например.
Если вы получаете HTML-код тега-супа, которым вы, скорее всего, являетесь, вы не сможете использовать собственный класс .NET XmlDocument без особых усилий. Вы должны взглянуть на HtmlAgilityPack , который имеет API, точно такой же, как у XmlDocument, но он включает в себя некоторые специфические для HTML вещи, такие как очистка HTML для правильной формы.
В этом примере используется класс XmlDocument, но использование HtmlDocument в HtmlAgilityPack должно быть очень похожим (только использование HtmlDocument вместо XmlDocument). Это должно заменить тег <search />
ссылкой на Google.
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
XmlNode searchTag = doc.SelectSingleNode("//search");
XmlElement linkTag = doc.CreateElement("a");
linkTag.InnerXml = searchTag.InnerXml;
linkTag.Attributes["href"].Value = "http://google.com/?q=" + linkTag.InnerText;
searchTag.ParentNode.ReplaceChild(searchTag, linkTag);
Отказ от ответственности: Я не тестировал этот пример кода выше, но он должен работать.