Estes atributos são gerados pelo Sharepoint, aquando a inserção/edição de conteúdos em controlos do tipo RichHtmlField.

/******************************Abrir o site indicado no campo URL*******************************/
using (SPSite site = new SPSite(tbUrl.Text))
{
SPWeb web = null;
try
{
SPContext context = SPContext.GetContext(site.RootWeb);
SPSecurity.RunWithElevatedPrivileges(delegate()
{
web = context.Site.OpenWeb(tbUrl.Text);
});
Localizar(web);
}
finally
{
if (web != null)
web.Dispose();
}
/***********************Localizar o que está indicado no campo Localizar*********************/
private void Localizar(SPWeb web)
{
try
{
SPQuery query = new SPQuery();
//Pesquisa no Field CorpoArtigoGenerico substituindo os caracteres <> pelo seu valor hexadecimal
query.Query = "<Where><And><Contains><FieldRef Name='CorpoArtigoGenerico' /><Value Type='HTML'>" + tbLocalizar.Text.Replace("<", "<").Replace(">", ">") + @"</Value></Contains><IsNotNull><FieldRef Name='TituloArtigoGenerico'/></IsNotNull></And></Where>";
SPListItemCollection listItem = web.Lists["Páginas"].GetItems(query);
if (listItem.Count != 0)
{
Substituir(listItem, web);
}
//se nao retornar resultados ou não tiver encontrado paginas do tipo artigos genericos
else
{
MessageBox.Show("No site " + web.ToString() + " não foi encontrado o termo pesquisado");
}
}
catch
{
MessageBox.Show("Erro");
}
//para cada site filho vai ser feita a pesquisa e substituiçao
for (int i = 0; i < web.Webs.Count; ++i)
{
Localizar(web.Webs[i]);
}
}
/***Editar a página, substituir pelo termo indicado no campo Substituir e Publicar a página******/
private void Substituir(SPListItemCollection listItem, SPWeb web)
{
foreach (SPListItem li in listItem)
{
if (PublishingPage.IsPublishingPage(li))
{
PublishingPage page = PublishingPage.GetPublishingPage(li);
try
{
page.ListItem.File.CheckOut();
string corpoAntigo = page.ListItem["CorpoArtigoGenerico"].ToString();
string corpoNovo = corpoAntigo.Replace(tbLocalizar.Text, tbSubstituir.Text);
//faz a substituiçao do texto antigo pelo novo
page.ListItem["CorpoArtigoGenerico"] = corpoNovo;
//faz o update, checkin, publish e aprove da pagina
page.Update();
page.ListItem.File.CheckIn("Actualizado pela Aplicacao Find&Replace");
page.ListItem.File.Publish("Publicado pela Aplicacao Find&Replace");
page.ListItem.File.Approve("Aprovado pela Aplicacao Find&Replace");
}
catch
{
MessageBox.Show("Houve um problema na saida do ficheiro");
}
}
}
MessageBox.Show("No site " + web.ToString() + " foram feitas alteraçoes");
}
Em suma, esta aplicação está construída com um objectivo muito específico mas pode servir como base para uma ideia com os mesmos propósitos.