gpt4 book ai didi

controls - 在打开的 xml 元素中替换内部文本?

转载 作者:行者123 更新时间:2023-12-02 04:07:35 24 4
gpt4 key购买 nike

我正在使用 open xml SDK 2.0,我对此很陌生。

我实际上在我的 word 2007 文档中创建了一个名为“hello.docx”的快速部分(包含内容控件)。现在我需要将快速部分复制到名为“hello.docx”的同一文档的另一个位置。我非常感谢这篇文章http://www.techques.com/question/1-3448297/Replacing-Content-Controls-in-OpenXML同样的事情发布在堆栈溢出论坛上,我非常感谢 :)...这篇文章只是删除了内容控件,但保留了内容控件中的内容。

在上述链接的帮助下,我能够修改代码以克隆内容控件并附加到同一文档(这部分代码正在运行)。但是我在innerText 中有问题。虽然我替换了打开的 Xml 元素中的 innerText,但它并没有反射(reflect)在文档中。

public static void AddingSdtBlock(string filename, string sdtBlockTag)
{
using (WordprocessingDocument doc = WordprocessingDocument.Open(filename,true))
{
MainDocumentPart mainDocumentPart = doc.MainDocumentPart;
List<SdtBlock> sdtList = mainDocumentPart.Document.Descendants<SdtBlock>().ToList();
SdtBlock sdtA = null;

foreach (SdtBlock sdt in sdtList)
{
if (sdt.SdtProperties.GetFirstChild<Tag>().Val.Value == sdtBlockTag)
{
sdtA = sdt;
break;
}
}
SdtBlock cloneSdkt = (SdtBlock)sdtA.Clone();



OpenXmlElement sdtc = cloneSdkt.GetFirstChild<SdtContentBlock>();
// OpenXmlElement parent = cloneSdkt.Parent;

OpenXmlElementList elements = cloneSdkt.ChildElements;

// var mySdtc = new SdtContentBlock(cloneSdkt.OuterXml);

foreach (OpenXmlElement elem in elements)
{
string innerxml= elem.InnerText ;
if (innerxml.Length>0)
{
string modified = "Class Name : My Class.Description : mydesc.AttributesNameDescriptionMy Attri name.my attri desc.Operations NameDescriptionmy ope name.my ope descriptn.";
string replace= elem.InnerText.Replace(innerxml, modified);
// mainDocumentPart.Document.Save();
}
// string text = parent.FirstChild.InnerText;
// parent.Append((OpenXmlElement)elem.Clone());
}

mainDocumentPart.Document.Body.AppendChild<SdtBlock>(cloneSdkt);

//sdtA.Remove();
}
}

openXML 元素中的替换字符串未反射(reflect)在文档中。任何帮助将非常感激。

提前致谢,

最佳答案

您的“字符串替换=”行什么也不做。通过创建变量,您似乎意识到 string.Replace() 不是就地替换,但是您没有对变量做任何事情。

关于controls - 在打开的 xml 元素中替换内部文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6869861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com