XSLT, объединить текст

Столкнулся с такой проблемой: Word (xml2003) делит гиперссылки на части, по примеру:

</w:rPr>
<w:delText>ура и здоровье» представлено в </w:delText>
</w:r>
<w:r wsp:rsidR="00614611" wsp:rsidDel="00842C74">
  <w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r wsp:rsidR="00432C5C" wsp:rsidDel="00842C74">
  <w:delInstrText>HYPERLINK</w:delInstrText>
</w:r>
<w:r wsp:rsidR="00432C5C" wsp:rsidRPr="00754A32" wsp:rsidDel="00842C74">
  <w:rPr>
  <aml:annotation aml:id="32222" aml:author="Gerasimova" aml:createdate="2021-09-07T11:31:00Z" w:type="Word.Formatting">
  <aml:content>
    <w:rPr/>
  </aml:content>
  </aml:annotation>
  </w:rPr>
  <w:delInstrText> \</w:delInstrText>
</w:r>
<w:r wsp:rsidR="00432C5C" wsp:rsidDel="00842C74">
  <w:delInstrText>l</w:delInstrText>
</w:r>
<w:r wsp:rsidR="00432C5C" wsp:rsidRPr="00754A32" wsp:rsidDel="00842C74">
  <w:rPr>
  <aml:annotation aml:id="32223" aml:author="Gerasimova" aml:createdate="2021-09-07T11:31:00Z" w:type="Word.Formatting">
  <aml:content>
    <w:rPr/>
  </aml:content>
  </aml:annotation>
  </w:rPr>
  <w:delInstrText> "Прил_1_Утв_79"</w:delInstrText>
</w:r>
<w:r wsp:rsidR="00614611" wsp:rsidDel="00842C74">
  <w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r wsp:rsidR="00C0782F" wsp:rsidRPr="00754A32" wsp:rsidDel="00842C74">
  <w:rPr>
  <w:rStyle w:val="aff2"/>
  <aml:annotation aml:id="32224" aml:author="Gerasimova" aml:createdate="2021-09-07T11:31:00Z" w:type="Word.Formatting">
    <aml:content>
      <w:rPr>
      <w:rStyle w:val="aff2"/>
      </w:rPr>
    </aml:content>
  </aml:annotation>
  </w:rPr>
  <w:delText>п</w:delText>
</w:r>
<w:r wsp:rsidRPr="00754A32" wsp:rsidDel="00842C74">
  <w:rPr>
    <w:rStyle w:val="aff2"/>
    <aml:annotation aml:id="32225" aml:author="Gerasimova" aml:createdate="2021-09-07T11:31:00Z" w:type="Word.Formatting">
      <aml:content>
        <w:rPr>
          <w:rStyle w:val="aff2"/>
        </w:rPr>
      </aml:content>
    </aml:annotation>
  </w:rPr>
  <w:delText>риложении 1</w:delText>
</w:r>
<w:r wsp:rsidR="00614611" wsp:rsidDel="00842C74">
  <w:fldChar w:fldCharType="end"/>
</w:r>

Оптимальным решением проблемы было бы собрать части между begin и separate, separate и end, относящиеся к гиперссылке. Не могу придумать решения, обращаюсь за помощью.

Результат должен быть приблизительно такой (часть до separate):

<w:r wsp:rsidR="00614611" wsp:rsidDel="00842C74">
  <w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r wsp:rsidR="00432C5C" wsp:rsidDel="00842C74">
  <w:delInstrText>HYPERLINK> \l "Прил_1_Утв_79"</w:delInstrText>
</w:r>
<w:r wsp:rsidR="00614611" wsp:rsidDel="00842C74">
  <w:fldChar w:fldCharType="separate"/>
</w:r>

Ответы (1 шт):

Автор решения: Сергей

Я нашел следующее решение:

  1. Необходимо объединить гиперссылку только с первой части, вторая часть у меня не обрабатывается.

  2. Сделал я это следующим образом:

    <xsl:for-each select="following-sibling::*[name()='w:r']/descendant::w:instrText|following-sibling::*[name()='w:r']/descendant::w:delInstrText/.">
      <xsl:value-of select="."/>
    </xsl:for-each>
    

Таким образом я "склеил" содержимое разбитой строки

→ Ссылка