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 шт):
Автор решения: Сергей
→ Ссылка
Я нашел следующее решение:
Необходимо объединить гиперссылку только с первой части, вторая часть у меня не обрабатывается.
Сделал я это следующим образом:
<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>
Таким образом я "склеил" содержимое разбитой строки