Есть ли глоссарий 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
элементы.