RemoveSelfOnly
内容
[
隐藏
]StructuredDocumentTagRangeStart.RemoveSelfOnly method
删除结构化文档标记的此范围起始节点和适当的范围结束节点, 但将其内容保留在文档树内。
public void RemoveSelfOnly()
例子
展示如何创建/删除结构化文档标签及其内容。
public void SdtRangeExtendedMethods()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("StructuredDocumentTag element");
InsertStructuredDocumentTagRanges(doc, out StructuredDocumentTagRangeStart rangeStart);
// 删除范围结构化文档标签,但保留内部内容。
rangeStart.RemoveSelfOnly();
rangeStart = (StructuredDocumentTagRangeStart)doc.GetChild(
NodeType.StructuredDocumentTagRangeStart, 0, false);
Assert.AreEqual(null, rangeStart);
StructuredDocumentTagRangeEnd rangeEnd = (StructuredDocumentTagRangeEnd)doc.GetChild(
NodeType.StructuredDocumentTagRangeEnd, 0, false);
Assert.AreEqual(null, rangeEnd);
Assert.AreEqual("StructuredDocumentTag element", doc.GetText().Trim());
InsertStructuredDocumentTagRanges(doc, out rangeStart);
Node paragraphNode = rangeStart.LastOrDefault();
Assert.AreEqual("StructuredDocumentTag element", paragraphNode?.GetText().Trim());
// 删除范围内的结构化文档标签和内容。
rangeStart.RemoveAllChildren();
paragraphNode = rangeStart.LastOrDefault();
Assert.AreEqual(null, paragraphNode?.GetText());
}
public void InsertStructuredDocumentTagRanges(Document doc, out StructuredDocumentTagRangeStart rangeStart)
{
rangeStart = new StructuredDocumentTagRangeStart(doc, SdtType.PlainText);
StructuredDocumentTagRangeEnd rangeEnd = new StructuredDocumentTagRangeEnd(doc, rangeStart.Id);
doc.FirstSection.Body.InsertBefore(rangeStart, doc.FirstSection.Body.FirstParagraph);
doc.LastSection.Body.InsertAfter(rangeEnd, doc.FirstSection.Body.FirstParagraph);
}