我正在使用Google Apps脚本从"模板"制作文档。 Google文档中的此模板具有以下格式:
(Text above the area of interest...) Culpa cillum excepteur cupidatat cillum ex.
{mySpecialText}
Est consectetur irure non quis sint exercitation velit qui consequat incididunt officia laborum ea veniam.
{/mySpecialText}
(More ignored text here...) Tempor voluptate irure laboris occaecat enim ipsum consequat velit.
除了代码之外,还应删除两个代码{mySpecialText}
和{/mySpecialText}
之间的文字。我该怎么做呢?我下面显示的当前代码删除了标签,但没有删除之间的段落。
/**
* @param doc - a `Document` instance.
* @param sectionId - the name of the tag
*/
function removeSection (doc, sectionId) {
var startTag = '{' + sectionId + '}'
var endTag = '{/' + sectionId + '}'
var body = doc.getBody()
var startElem = body.findText(startTag)
var endElem = body.findText(endTag)
if (startElem == null) {
return Logger.log('Couldn\'t find startElem with tag "' + startTag + '"')
}
if (endElem == null) {
return Logger.log('Couldn\'t find endElem with tag "' + endTag + '"')
}
startElem = startElem.getElement()
endElem = endElem.getElement()
var toRemove = []
var currentElement = startElem
while (currentElement !== null && !isSameElement(currentElement, endElem)) {
toRemove.push(currentElement)
currentElement = currentElement.getNextSibling()
}
toRemove.push(endElem)
for (var i = 0; i < toRemove.length; i++) {
toRemove[i].removeFromParent()
}
}
答案 0 :(得分:0)
您需要删除标签之间的整个段落。假设这只是一个段落,您可以检索段落元素并按如下方式删除它:
var removeme = startElem.getParent().getNextSibling().asParagraph();
removeme.removeFromParent();
如果可能有多个段落,您可以编写一些带有循环的脚本,该循环检测removeme
的下一个兄弟是否为结束标记。如果不是,则删除段落,否则停止循环。