我正在尝试替换用括号括起来的Microsoft Word文档中的每个单词。由于某些原因,XML运行有时会有所不同。
这意味着有时实际上会将带括号的整个单词带入循环,但有时可能仅带第一个括号,有时可能将第一个括号带入单词,但不带第二个括号。
>这导致某些单词永远不会被替换。
我尝试在stackoverflow上使用先前线程的解决方案,但没有结果。 我还尝试检测方括号何时拆分,但这没有用,因为它也可以将单词随机拆分到任何地方。
例如,我尝试了该线程的解决方案,没有其他任何结果:Replace Text in Word document using Open Xml
public IActionResult Get([FromBody] dynamic value)
{
JObject attributesAsJObject = value;
Dictionary<string, object> values = attributesAsJObject.ToObject<Dictionary<string, object>>();
string path = Directory.GetCurrentDirectory() + "/test.docx";
// Open a WordprocessingDocument for editing using the filepath.
using (WordprocessingDocument doc =
WordprocessingDocument.Open(path, true))
{
var body = doc.MainDocumentPart.Document.Body;
foreach (var text in body.Descendants<Text>())
{
foreach (dynamic key in values)
{
string thekey = "{{" + key.Key + "}}".ToString();
if (text.Text.Contains(thekey))
{
text.Text = text.Text.Replace(thekey, key.Value);
}
}
}
}
return Ok();
}
使用这种解决方案,我希望foreach循环中的“文本”变量始终是完整的单词,但仍会随机拆分。