Ms word word文档中的标记点

Ms word word文档中的标记点,ms-word,openxml,word-2007,wordprocessingml,Ms Word,Openxml,Word 2007,Wordprocessingml,如何标记word文档中的“点”(可以是文本区域或文本字段)?我尝试在文档中放置纯文本内容控件,但当我查看生成的XML时,该纯文本控件没有“别名”。我看到的所有代码都需要有一个别名。我做错了什么?还有没有其他更简单的方法可以轻松地“标记”文档中的某个点,并在以后检索其中的文本?(用户将输入文本…通常,您使用书签。您可以标记特定点,也可以将所选内容(区域)添加到书签中。它们正是你想要的,你会发现它们非常有用 看看吧,这会让你开始 WordprocessingML在Visual Studio中,我能够

如何标记word文档中的“点”(可以是文本区域或文本字段)?我尝试在文档中放置纯文本内容控件,但当我查看生成的XML时,该纯文本控件没有“别名”。我看到的所有代码都需要有一个别名。我做错了什么?还有没有其他更简单的方法可以轻松地“标记”文档中的某个点,并在以后检索其中的文本?(用户将输入文本…

通常,您使用书签。您可以标记特定点,也可以将所选内容(区域)添加到书签中。它们正是你想要的,你会发现它们非常有用

看看吧,这会让你开始


WordprocessingML在Visual Studio中,我能够使用设计器设置纯文本控件的属性。在属性上有一个“tag”属性,我将它设置为我想要的标记名称。然后使用此方法,我可以在以后找到控件:

WordprocessingDocument document = WordprocessingDocument.Open(file.OpenBinaryStream(), true);

        var docPart = document.MainDocumentPart;
        // Find the first content control whose Alias property
        // matches the supplied name.
        var sdts = docPart.Document.Descendants<Tag>();
        foreach (var sdt in sdts)
        {
            string value = (string)sdt.Val;

            if (value.Equals(contentControlTag))
            {
                oxe = sdt;
                break;
            }
        }

        return oxe;
WordprocessingDocument document=WordprocessingDocument.Open(file.OpenBinaryStream(),true);
var docPart=document.MainDocumentPart;
//查找其Alias属性的第一个内容控件
//与提供的名称匹配。
var sdts=docPart.Document.subjects();
foreach(sdt中的var sdt)
{
字符串值=(字符串)sdt.Val;
if(value.Equals(contentControlTag))
{
oxe=sdt;
打破
}
}
还牛;

如何获取生成的XML?通过从
.docx
?@JMax中提取
.zip
,我使用的是处理低级细节的OpenXML SDK。实际上,我在使用设计器时意识到,我可以在纯文本框内容控件上设置“标记”和“id”。现在我只需要弄清楚如何使用控件的标记或ID来查找控件。一个简单的带有XPath的XML解析器可以毫不费力地完成这项工作