DO C, файлы DOCX, XLS, XLSX, ODT и т. Д. Фактически заархивированы XML файлы.
Таким образом, вы можете создать нужный формат в текстовом редакторе, а затем распаковать файл. Если у вас был файл docx, то в разархивированной версии вы увидите 3 папки. Слово \ документ будет содержать правильный XML для вас. Здесь вы можете проверить, как будет выглядеть желаемая структура, если вы создадите ту же структуру с помощью PHP.
Мой тестовый файл ODT (формат LibreOffice Word):
content.xml
, который описывает часть сомнительной структуры (файл ODT):
<text:list xml:id="list1418357962" text:style-name="L1">
<text:list-item>
<text:p text:style-name="P2">asd</text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="P2">asd</text:p>
<text:list>
<text:list-item>
<text:p text:style-name="P2">asd</text:p>
</text:list-item>
<text:list-item>
<text:p text:style-name="P2">asd</text:p>
</text:list-item>
</text:list>
</text:list-item>
</text:list>
<text:p text:style-name="P1" />
Я также сохранил документ как .docx
файл. Здесь word\document.xml
выглядит так:
<w:body>
<w:p>
<w:pPr>
<w:pStyle w:val="Normal" />
<w:bidi w:val="0" />
<w:jc w:val="left" />
<w:rPr />
</w:pPr>
<w:r>
<w:rPr />
<w:t>Asd</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Normal" />
<w:bidi w:val="0" />
<w:jc w:val="left" />
<w:rPr />
</w:pPr>
<w:r>
<w:rPr />
<w:t>asd</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Normal" />
<w:numPr>
<w:ilvl w:val="0" />
<w:numId w:val="1" />
</w:numPr>
<w:bidi w:val="0" />
<w:jc w:val="left" />
<w:rPr />
</w:pPr>
<w:r>
<w:rPr />
<w:t>asd</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Normal" />
<w:numPr>
<w:ilvl w:val="0" />
<w:numId w:val="1" />
</w:numPr>
<w:bidi w:val="0" />
<w:jc w:val="left" />
<w:rPr />
</w:pPr>
<w:r>
<w:rPr />
<w:t>asd</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Normal" />
<w:numPr>
<w:ilvl w:val="1" />
<w:numId w:val="1" />
</w:numPr>
<w:bidi w:val="0" />
<w:jc w:val="left" />
<w:rPr />
</w:pPr>
<w:r>
<w:rPr />
<w:t>asd</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Normal" />
<w:numPr>
<w:ilvl w:val="1" />
<w:numId w:val="1" />
</w:numPr>
<w:bidi w:val="0" />
<w:jc w:val="left" />
<w:rPr />
</w:pPr>
<w:r>
<w:rPr />
<w:t>asd</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Normal" />
<w:bidi w:val="0" />
<w:jc w:val="left" />
<w:rPr />
</w:pPr>
<w:r>
<w:rPr />
</w:r>
</w:p>
<w:sectPr>
<w:type w:val="nextPage" />
<w:pgSz w:w="12240" w:h="15840" />
<w:pgMar w:left="1134" w:right="1134" w:header="0" w:top="1134" w:footer="0" w:bottom="1134" w:gutter="0" />
<w:pgNumType w:fmt="decimal" />
<w:formProt w:val="false" />
<w:textDirection w:val="lrTb" />
<w:docGrid w:type="default" w:linePitch="600" w:charSpace="32768" />
</w:sectPr>
</w:body>
Вероятно, у него много дополнительных тегов, потому что это преобразованный формат, и конвертер не очень хорошо работает. Но вы можете использовать Word, zip-приложение и простой текстовый редактор, чтобы определить оптимизированный формат. Когда вы изменяете XML, вы можете вернуть его, заархивировать и проверить результат в Word.