【发布时间】:2015-11-11 13:16:15
【问题描述】:
我尝试了以下方法:
comment.InnerText=comment.InnerText.Replace(comment.InnerText,new_text);
这不起作用,因为我们只能读取 InnerText 属性。如何有效地更改 InnerText 值,以便将修改保存到 WordProcessing.CommentsPart.Comments 和 MainDocumentPart.Document ?
编辑:DocumentFormat.OpenXml.Wordprocessing.Comment 是评论类。
编辑2:方法:
public void updateCommentInnerTextNewWorkItem(List<Tuple<Int32, String, String>> list){
//DOCX.CDOC.Comments -> WordProcessingCommentsPart.Comments
//DOCX._CIT -> Dictionary<int,string>
foreach (var comm in DOCX.CDOC.Comments)
{
foreach (var item in list)
{
foreach (var item_cit in DOCX._CIT)
{
if (((Comment)comm).InnerText.Contains("<tag>") && item.Item3.Contains(item_cit.Value))
{
comm.InnerXml = comm.InnerXml.Replace(comm.InnerText, item.Item1 + "");
//comm.InnerText.Replace(comm.InnerText,item.Item1+"");
//DOCX.CDOC.Comments.Save();
//DOCX.DOC.MainDocumentPart.Document.Save();
}
if (((Comment)comm).InnerText.Contains("<tag class") && item.Item3.Contains(item_cit.Value))
{
//comm.InnerText.Replace(comm.InnerText, item.Item1 + "");
comm.InnerXml = comm.InnerXml.Replace(comm.InnerText, item.Item1 + "");
//DOCX.CDOC.Comments.Save();
//DOCX.DOC.MainDocumentPart.Document.Save();
}
}
}
}
DOCX.CDOC.Comments.Save();
DOCX.DOC.MainDocumentPart.Document.Save();
}
【问题讨论】:
-
评论类是什么?从显示的 sn-p 中并不能真正知道。
-
@PhilippeParé 我想替换 InnerText,而不是 InnerXml。 @ZacharyDow 我正在使用
DocumentFormat.OpenXml.Wordprocessing.Comment。 -
使用 mainDocumentPart.Document.Save();来自@PhilippeParé 的可能重复不起作用?
-
@ZacharyDow 问题不在于保存文档部分(它工作正常),而是替换内部文本内容的过程。我提供的内容不起作用,就像在副本的第二个答案中解释的那样。我想知道如何替换内容。