Разбор документа Open XML через стилизованные блоки - PullRequest
2 голосов
/ 20 апреля 2010

Я работаю с docx docs, и мне нужно разбить документ на разделы на основе заголовков, стилизованных под стиль «заголовок 1». Итак, если бы у меня был такой документ (разметка - псевдокод):

<doc>
<title style>Doc Title</title style>
<heading1>First Section</heading1>
...
<heading2>Second Section</heading2>
...
<heading3>Third Section</heading3>
...
</doc>

Я бы хотел разбить это на документ с четырьмя разделами, первый из которых - контент, предшествующий первому разделу. Я полагаю, что это, вероятно, довольно просто, когда вы знакомы с Open XML, но я не знаю.

ТИА.

1 Ответ

2 голосов
/ 21 апреля 2010

Ух ты ... даже никаких взглядов на этот вопрос весь день. Ну, я понял это и решил поделиться богатством. Я не могу поделиться кодом напрямую, но это всего лишь три вложенных цикла, один цикл по абзацам, затем выполняется абзац, затем стили. XPath для каждого из них:

.//w:p
./w:pPr
./w:pStyle

Как только вы найдете прогон со стилем, который вам нравится, вы возвращаетесь на уровень, чтобы получить первый прогон, который будет содержать стилизованный текст. С этого момента, это просто Comp Sci 101 материал. Я думаю, что настоящим прорывом было даже не пытаться связываться с Open Xml SDK (помимо вещей IO Packaging) и перейти непосредственно к манипулированию XML.

...