Есть ли глоссарий XML-тегов Word .docx?

Я пытаюсь создать парсер, чтобы найти отслеживаемые изменения и автора Word .docx файл...

Я нашел document.xml но тегов так много! Есть ли где-нибудь глоссарий, что означают все эти теги?

Я хотел бы избежать грубого принуждения, если это возможно.

4 ответа

Решение
"w:ins" denotes what was inserted when trackedchanges are enabled.
"w:del" denotes what was deleted when  trackedchanges are enabled.
"w:commentRangeStart" denotes the start of a comment
"w:commentRangeEnd" denotes the end of the comment.

All text are found inside 
"w:t" tags.

Вы можете начать собирать информацию об этом в самой вики-теге Stack Overflow docx.

.docx файлы (а также другие новые файлы MS Office, такие как .xlsx) использовать формат OOXML


Особенно:

Microsoft Office Open XML WordProcessingML в основном стандартизирован в ECMA 376 и ISO 29500.

Вы можете получить соответствующую спецификацию стандарта ECMA здесь: http://www.ecma-international.org/news/TC45_current_work/TC45_available_docs.htm

Конкретный документ, который вы, вероятно, ищете, - это, вероятно, Open Office XML, часть 4. Справочник по языку разметки.

Но, конечно... это огромно (5219 страниц!)

Я настоятельно рекомендую точно определить функции, которые вы хотите, и взглянуть на существующие библиотеки с открытым исходным кодом, которые уже выполняют ту часть работы, которую вы хотите выполнить.

Вы можете использовать мое веб-приложение docx4j, в частности http://webapp.docx4java.org/OnlineDemo/PartsList.html

При этом вы можете нажать на тег, и он приведет вас к соответствующему определению в спецификации.

Формат "Office Open XML" и его словари XML подробно описаны в http://www.ecma-international.org/publications/standards/Ecma-376.htm.

Чтобы дать вам представление, следующий фрагмент XSLT должен извлекать только эффективный текст результата без отслеживаемых удалений документа wordprocessingML, как это было бы сохранено в word/document.xml в файле.docx (ZIP-архив).

<!-- Match and output text spans except when
     appearing in w:delText child content -->
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <xsl:output method="text"/>
  <xsl:template match="w:t">
    <xsl:value-of select="."/>
  </xsl:template>
  <xsl:template match="w:delText"/>
  <xsl:template match="*">
    <xsl:apply-templates/>
  </xsl:template>
</xsl:stylesheet>

Чтобы приложение могло извлекать изменения, вам также необходимо позаботиться о w:ins элементы.

Другие вопросы по тегам