単一bulletpointは、次のXMLを使用することができます。これは、実行中のテキスト 'Item1'を含む単一の段落です。 ParagraphPropertiesはスタイル「ListParagraph」を適用し、ナンバリングを指し:
<w:p>
<w:pPr>
<w:pStyle w:val="ListParagraph" />
<w:numPr>
<w:ilvl w:val="0" />
<w:numId w:val="1" />
</w:numPr>
</w:pPr>
<w:r>
<w:t>Item1</w:t>
</w:r>
</w:p>
変更履歴の記録が有効になっていて、私はテキスト「アイテム1」を削除した場合、私は、次のようなXMLを取得:
<w:p>
<w:pPr>
<w:pStyle w:val="ListParagraph" />
<w:pPrChange w:author="Daniel Brixen" w:date="2017-02-16T09:37:00Z" w:id="0">
<w:pPr>
<w:pStyle w:val="ListParagraph" />
<w:numPr>
<w:numId w:val="1" />
</w:numPr>
<w:ind w:hanging="360" />
</w:pPr>
</w:pPrChange>
</w:pPr>
<w:del w:author="Daniel Brixen" w:date="2017-02-16T09:37:00Z" w:id="2">
<w:r>
<w:delText>Item2</w:delText>
</w:r>
</w:del>
</w:p>
2つのことを注:
- 削除されたテキストは、ParagraphPによって記録されDeletedRun要素
- 段落-特性の変化をしていますropertiesChange要素。
だから、このようなものを使用して削除されたテキストを見つけることができるはずです。
using (var doc = WordprocessingDocument.Open(@"c:\temp\test.docx", true))
{
var deletedText = doc.MainDocumentPart.Document.Body.Descendants<DeletedText>();
Console.WriteLine(String.Join(" ", deletedText.Select(t => t.Text)));
}
このようなものをデバッグするときにオープンXML生産性向上ツールが便利です使用します。
返信ありがとうございますDaniel、 paragragh全体を削除したくない場合は、段落の番号付けを削除するだけです。 たとえば、3つの段落を含むリストの番号付けの段落。 2番目のリスト番号を削除した場合トラックの変更をオンにした後に段落のテキストを削除しないと、リスト番号3が2になり、2番目の段落に削除された値2を取得できなくなります。削除されたリスト番号ではなく、テキストのみが含まれます。 – Manohar
リスト番号:1,2,3、a、b、c、I、II、IIIなどは段落テキストの一部ではありません。これらはnumbering.xmlの内容で定義され、とを使って段落。 –
はい、知っていますが、トラックの変更を使用して削除されたリスト番号の値を取得できません。 – Manohar