I have the piece of code below. I\'d like replace the text \"Text1\" by \"NewText\", that\'s work. But when I place the text \"Text1\" in a table that\'s not work anymore for th
Your code does not work because the table element (w:tbl
) is not contained in
a paragraph element (w:p
). See the following MSDN article for more information.
The Text
class (serialized as w:t
) usually represents literal text within a Run
element in a
word document. So you could simply search for all w:t
elements (Text
class) and replace your
tag if the text element (w:t
) contains your tag:
using (WordprocessingDocument doc = WordprocessingDocument.Open("yourdoc.docx", true))
{
var body = doc.MainDocumentPart.Document.Body;
foreach (var text in body.Descendants())
{
if (text.Text.Contains("##Text1##"))
{
text.Text = text.Text.Replace("##Text1##", "NewText");
}
}
}