Как найти контент, вставленный через ooxml - PullRequest
0 голосов
/ 11 мая 2018

В надстройке Word, после вставки содержимого через ooxml:

Word.run((context) => {
    context.document.body.insertOoxml("<pkg:package xmlns:pkg='http://schemas.microsoft.com/office/2006/xmlPackage'><pkg:part pkg:name='/_rels/.rels' pkg:contentType='application/vnd.openxmlformats-package.relationships+xml' pkg:padding='512'><pkg:xmlData><Relationships xmlns='http://schemas.openxmlformats.org/package/2006/relationships'><Relationship Id='rId1' Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument' Target='word/document.xml'/></Relationships></pkg:xmlData></pkg:part><pkg:part pkg:name='/word/document.xml' pkg:contentType='application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml'><pkg:xmlData><w:document xmlns:w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' ><w:body><w:p><w:sdt><w:sdtPr><w:tag w:val=\"469\"/><w:text /><w:alias w:val=\"mytag\" /></w:sdtPr><w:sdtContent><w:r><w:t>[_MyText]</w:t></w:r></w:sdtContent></w:sdt></w:p></w:body></w:document></pkg:xmlData></pkg:part></pkg:package>", Word.InsertLocation.start);
    return context.sync().then(() => {});
});

Я пытаюсь найти его на странице, чтобы заменить его текстом.

Пробовал:

Word.run((context) => {
    let cc = context.document.contentControls.getByTitle("mytag");
    console.log(cc);
    cc.load('items');
    return context.sync().then(() => {
        console.log(cc.items);
    });
});

Результат console.log: Array (0)

Также пробовал:

Word.run((context) => {
    let cc = context.document.contentControls.getByTag("469");
    console.log(cc);
    cc.load('items');
    return context.sync().then(() => {
        console.log(cc.items);
    });
});

Результат console.log: Array (0)

И

Word.run((context) => {
    let options = Word.SearchOptions.newObject(context);
    options.matchWildCards = false;
    options.ignorePunct = true;
    options.ignoreSpace = true;
    options.matchPrefix = true;
    options.matchSuffix = true;
    options.matchWildCards = true;
    let rangesFind = context.document.body.search('[_MyText]', options);
    context.load(rangesFind);
    return context.sync().then(() => {
        console.log(rangesFind.items);
        rangesFind.items.forEach((item) => {
            console.log(item.text);
            item.insertText('REPLACED', Word.InsertLocation.replace);
        });
    });
});

Результат console.log (rangeFind): Array (5) Результат каждого console.log (item.text): _ (x2) е (х2) _

Как лучше найти этот контент для замены другим контентом (текстовым или другим ooxml)?

...