Wie zum extrahieren von text eingefügt mit track-änderungen in der python-docx

Möchte ich zum extrahieren von text aus word-Dokumente, die bearbeitet wurden im „Änderungen-Verfolgen“ – Modus. Ich möchte zum extrahieren der eingefügten text und ignorieren den text gelöscht.

Läuft den code unten sah ich, dass Absätze eingefügt, die im „änderungen-verfolgen“ – Modus zurück ein leerer Absatz.text

import docx

doc = docx.Document('C:\\test track changes.docx')

for para in doc.paragraphs:
    print(para)
    print(para.text)

Gibt es eine Möglichkeit zum abrufen der text in revisioned Einsätze (w:ins-Elemente) ?

Ich bin mit python-docx-0.8.6, lxml 3.4.0, python 3.4, Win7

Dank

InformationsquelleAutor yiftah | 2016-07-07



2 Replies
  1. 1

    Nicht direkt mit python-docx; es gibt keine API noch Unterstützung für nachverfolgte änderungen/Revisionen.

    Es ist eine ziemlich knifflige Aufgabe, die Sie entdecken, wenn Sie suchen auf den Namen der Elemente, vielleicht auch „open xml w:ins‘ für einen start, das bringt dieses Dokument als das erste Ergebnis:
    https://msdn.microsoft.com/en-us/library/ee836138(v=office.12).aspx

    Wenn ich brauchte, um etwas in eine Prise, ich würde Holen Sie sich das body-element mit:

    body = document._body._body

    und dann mithilfe von XPath auf, dass die Rückkehr der Elemente, die ich wollte, etwas, das vage wie das aircode:

    from docx.text.paragraph import Paragraph
    
    inserted_ps = body.xpath('./w:ins//w:p')
    for p in inserted_ps:
        paragraph = Paragraph(p, None)
        print(paragraph.text)

    Werden Sie auf Ihre eigenen, um herauszufinden, was XPath-Ausdruck erhalten Sie die Absätze, die Sie wollen.

    opc-diag kann ein Freund sein in diesem, so dass Sie schnell Scannen Sie das XML der .docx-Paket. http://opc-diag.readthedocs.io/en/latest/index.html

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.