Структура поля docx - PullRequest
       31

Структура поля docx

0 голосов
/ 11 февраля 2011

Поле в docx представляется следующим образом.

  <w:r>
    <w:fldChar w:fldCharType="begin"/>
  </w:r>
  AAA
  <w:r>
    <w:instrText xml:space="preserve"> NOTEREF _Ref111111 \h </w:instrText>
  </w:r>
  BBB
  <w:r>
    <w:fldChar w:fldCharType="separate"/>
  </w:r>
  CONTENT
  <w:r>
    <w:fldChar w:fldCharType="end"/>
  </w:r>

Содержимое поля отправляется в заполнитель CONTENT.Мой вопрос: может ли что-нибудь пойти в ААА или ВВВ?Или они всегда пусты?Я подозреваю, что создатели этого формата имели в виду наличие четырех элементов-разделителей вместо двух, но я не видел примеров использования этого.

1 Ответ

1 голос
/ 20 февраля 2011

Лучше думать об этом как о трех элементах-разделителях и двух слотах для контента, которые могут быть сложными благодаря разделителям.

  <w:r><w:fldChar w:fldCharType="begin"/></w:r>
  LABEL
  <w:r><w:fldChar w:fldCharType="separate"/></w:r>
  VALUE
  <w:r><w:fldChar w:fldCharType="end"/></w:r>

То есть ваши AAA и BBB - это просто дополнительный контент для LABEL.

В спецификации есть пример, где LABEL:

<w:r><w:rPr><w:b/><w:color w:val="ED1C24"/><w:u w:val="single"/></w:rPr>
     <w:instrText>D</w:instrText></w:r>
<w:r><w:instrText xml:space="preserve">ATE</w:instrText></w:r>

, чтобы сделать D в DATE другим стилем.

...