У меня есть объект XDocument, который содержит XHTML, и я хочу добавить элементы ABBR в строку. У меня есть список, который я просматриваю, чтобы искать значения, которые необходимо обернуть в элементах ABBR.Вставить XElement в значение другого XElement
Допустим, у меня есть XElement, который содержит XHTML, как так:
<p>Some text will go here</p>
мне нужно настроить значение XElement выглядеть следующим образом:
<p>Some text <abbr title="Will Description">will</abbr> go here</p>
Как мне это сделать?
UPDATE:
Я оберточное значение "будет" с HTML элементом ABBR.
Это то, что я до сих пор:
// Loop through them
foreach (XElement xhtmlElement in allElements)
{
// Don't process this element if it has child elements as they
// will also be processed through here.
if (!xhtmlElement.Elements().Any())
{
string innerText = GetInnerText(xhtmlElement);
foreach (var abbrItem in AbbreviationItems)
{
if (innerText.ToLower().Contains(abbrItem.Description.ToLower()))
{
var abbrElement = new XElement("abbr",
new XAttribute("title", abbrItem.Abbreviation),
abbrItem.Description);
innerText = Regex.Replace(innerText, abbrItem.Description, abbrElement.ToString(),
RegexOptions.IgnoreCase);
xhtmlElement.Value = innerText;
}
}
}
}
Проблема такого подхода заключается в том, что, когда я установил свойство XElement значение, он кодирует теги XML (правильно обрабатывать его в виде строки, а не XML).
Там не хватает информации здесь. Почему «будет» завернуто? что ты уже испробовал? –
Насколько вы заботитесь о сохранении точных пробелов между словами и т. Д.? –
В этом вопросе есть несколько частей: (1) С учетом строки найдите в ней известные аббревиатуры. (2) С учетом аббревиатуры найдите его описание. (3) Учитывая текст, содержащий текст XElement, замените часть текста на XElement. С какой частью вам нужна помощь? –