2017-02-16 8 views
0

トラックの変更(リビジョン)オプションをwordでオンにして変更を加え、すべてのトラックの変更がopenxmlのコンテンツで追跡されていることがわかりました。しかし、私はopenxmlコンテンツの削除されたlistnumの値を見ていませんし、listnumの値は次の段落から続きます。どうすればopenXmlで削除されたlistnumの値を追跡/取得できますか?OpenXml(リビジョン)のリストナムトラックの変更に関する問題

問題の詳細 - listnums(a)〜(e)の5つの段落があります。私はトラックの変更を有効にし、リストナム値(b)を削除して、2番目の段落にlistnumがないようにしました。私はトラックの変更をオンにしてからopenxmlの値(b)を得るかもしれないと思ったが、openxmlから削除された値(b)を取得することはできない。

おかげで、 マヌー

答えて

1

単一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生産性向上ツールが便利です使用します。

+0

返信ありがとうございますDaniel、 paragragh全体を削除したくない場合は、段落の番号付けを削除するだけです。 たとえば、3つの段落を含むリストの番号付けの段落。 2番目のリスト番号を削除した場合トラックの変更をオンにした後に段落のテキストを削除しないと、リスト番号3が2になり、2番目の段落に削除された値2を取得できなくなります。削除されたリスト番号ではなく、テキストのみが含まれます。 – Manohar

+0

リスト番号:1,2,3、a、b、c、I、II、IIIなどは段落テキストの一部ではありません。これらはnumbering.xmlの内容で定義され、を使って段落。 –

+0

はい、知っていますが、トラックの変更を使用して削除されたリスト番号の値を取得できません。 – Manohar

関連する問題