Я создаю документ Excel, в котором определенный текст в ячейке будет отформатирован другим цветом или полужирным шрифтом.
например моя электронная таблица должна быть такой:.
Текст, который я хочу отформатировать, имеет теги в моем XML, например. <strong>
. Я написал функцию, которая собирает эти теги и заменяет их цветным или жирным шрифтом, например. <Font html:color="#0000FF"> text </Font>
при создании вывода xml для открытия в Excel.
Проблема в том, что при открытии электронной таблицы текст не окрашивается, а вместо этого окружается командой форматирования <Font html:color="#0000FF">
:.
Вот мой входной XML
<?xml version="1.0" encoding="UTF-8"?>
<analysis>
<datasetList>
<dataset>
<datasetLabel>Subject Level Analysis</datasetLabel>
<datasetName>ADSL</datasetName>
<datasetOrdinal>1</datasetOrdinal>
<datasetStructure>One record per subject</datasetStructure>
<datasetContext>
<datasetClass>
<datasetClass>ADSL</datasetClass>
</datasetClass>
</datasetContext>
<columnList>
<column>
<columnLabel>Analysis Visit</columnLabel>
<columnName>AVISIT</columnName>
<columnDerivationList>
<columnDerivation>
<columnDerivationDescription>Set to collected visit name [EG.VISIT] <keepordrop>Set to 'POST-BASELINE MINIMUM'</keepordrop></columnDerivationDescription>
</columnDerivation>
<columnDerivation>
<columnDerivationDescription>Set to a re-defined visit range based on user-defined input. <strong>Set to 'POST-BASELINE MINIMUM'</strong></columnDerivationDescription>
</columnDerivation>
</columnDerivationList>
</column>
<column>
<columnLabel>Analysis Visit (N)</columnLabel>
<columnName>AVISITN</columnName>
<columnDerivationList>
<columnDerivation>
<columnDerivationDescription>Set to collected <edit>Set to 9997</edit></columnDerivationDescription>
</columnDerivation>
<columnDerivation>
<columnDerivationDescription>Set to a user defined numeric value <select>Set to 9997 wih the analysis visit </select></columnDerivationDescription>
</columnDerivation>
</columnDerivationList>
</column>
</columnList>
</dataset>
</datasetList>
</analysis>
Вот мой полный XSLT
<?xml version="1.0" encoding="UTF-8"?>
<?mso-application progid="Excel.Sheet"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:gdsr="http://somethinghere.com" >
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<!--
***************************************************************************************
START OF WORKBOOK LAYOUT
***************************************************************************************
-->
<xsl:template match="/" >
<xsl:processing-instruction name="mso-application">progid="Excel.Sheet"</xsl:processing-instruction>
<ss:Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
<xsl:call-template name="document-properties"/>
<xsl:call-template name="document-styles"/>
<!-- ****************************************************************************************** -->
<!-- CREATE THE TABS IN THE WORKBOOK -->
<!-- ****************************************************************************************** -->
<xsl:call-template name="getDset"/>
<!-- ****************************************************************************************** -->
</ss:Workbook>
</xsl:template>
<!-- TEMPLATE FOR DATASET -->
<xsl:template name="getDset">
<xsl:for-each select="//dataset">
<ss:Worksheet ss:Name="{.//datasetName}"><!-- Add filters to the columns -->
<Names>
<NamedRange ss:Name="_FilterDatabase" ss:RefersTo="={.//datasetName}!R1C1:R1C2" ss:Hidden="1"/>
</Names>
<ss:Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="200" x:FullColumns="1" x:FullRows="1" ss:DefaultRowHeight="30">
<Column ss:Width="70"/>
<Column ss:Width="70"/>
<Row>
<Cell ss:StyleID="sHead">
<Data ss:Type="String">
Header1
</Data>
<NamedCell ss:Name="_FilterDatabase"/>
</Cell>
<Cell ss:StyleID="sHead">
<Data ss:Type="String">
Header2
</Data>
<NamedCell ss:Name="_FilterDatabase"/>
</Cell>
</Row>
<xsl:for-each select="columnList/column">
<xsl:if test="columnName !=' ' ">
<Row>
<Cell ss:StyleID="sBody" >
<Data ss:Type="String">
<xsl:value-of select="columnName"/>
</Data>
</Cell>
<!-- SET COLOR OF TEXT WHEN TAGGED -->
<xsl:variable name="columnDerivationDescription">
<xsl:value-of select="columnDerivationList/columnDerivation/columnDerivationDescription"/>
</xsl:variable>
<xsl:variable name="columnDerivationDescription1">
<xsl:value-of select="gdsr:set-font($columnDerivationDescription)"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="contains($columnDerivationDescription1, 'Font')">
<Cell ss:StyleID="sBody">
<ss:Data ss:Type="String" xmlns="http://www.w3.org/TR/REC-html40">
<xsl:for-each select="columnDerivationList/columnDerivation">
<xsl:if test="columnDerivationDescription !=' ' ">
<xsl:call-template name="LFsToBRs">
<xsl:with-param name="input" select="gdsr:set-font(columnDerivationDescription)"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</ss:Data>
</Cell>
</xsl:when>
<xsl:otherwise>
<Cell ss:StyleID="sBody">
<Data ss:Type="String">
<xsl:for-each select="columnDerivationList/columnDerivation">
<xsl:if test="columnDerivationDescription !=' ' ">
<xsl:call-template name="LFsToBRs">
<xsl:with-param name="input" select="columnDerivationDescription"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</Data>
</Cell>
</xsl:otherwise>
</xsl:choose>
<!-- COLOUR TAGGED. NICELY DONE -->
</Row>
</xsl:if>
</xsl:for-each>
</ss:Table>
<xsl:call-template name="worksheet-options"/>
<AutoFilter x:Range="R1C1:R1C2" xmlns="urn:schemas-microsoft-com:office:excel"/>
</ss:Worksheet>
</xsl:for-each>
</xsl:template>
<!--FUNCTIONS-->
<xsl:function name="gdsr:set-font">
<xsl:param name="text"/>
<xsl:variable name="blue-font"><Font html:color="#0000FF"></xsl:variable>
<xsl:variable name="blue-font-end"><xsl:text disable-output-escaping="no"></Font></xsl:text></xsl:variable>
<xsl:variable name="pink-font"><Font html:color="#7030A0"></xsl:variable>
<xsl:variable name="pink-font-end"><xsl:text disable-output-escaping="no"></Font></xsl:text></xsl:variable>
<xsl:variable name="var-1" select="replace($text,'<select>',$blue-font)"/>
<xsl:variable name="var-2" select="replace($var-1,'</select>',$blue-font-end)"/>
<xsl:variable name="var-3" select="replace($var-2,'<strong>','<b>')"/>
<xsl:variable name="var-4" select="replace($var-3,'</strong>','</b>')"/>
<xsl:variable name="var-5" select="replace($var-4,'<keepordrop>',$pink-font)"/>
<xsl:variable name="var-6" select="replace($var-5,'</keepordrop>',$pink-font-end)"/>
<xsl:variable name="var-7" select="replace($var-6,'<edit>',$blue-font)"/>
<xsl:variable name="var-8" select="replace($var-7,'</edit>',$blue-font-end)"/>
<xsl:variable name="var-81" select="replace($var-8,'<select><option>',$blue-font)"/>
<xsl:variable name="var-82" select="replace($var-81,'</option><option>','BLUEFONTENDOP1 | BLUEFONTSTARTOP2')"/>
<xsl:variable name="var-83" select="replace($var-82,'BLUEFONTENDOP1',$blue-font-end)"/>
<xsl:variable name="var-84" select="replace($var-83,'BLUEFONTSTARTOP2',$blue-font)"/>
<xsl:variable name="var-85" select="replace($var-84,'</option></select>',$blue-font-end)"/>
<xsl:variable name="var-9">
<xsl:analyze-string select="$var-85"
regex="({$blue-font})(.*?)({$blue-font-end}|{$blue-font})">
<xsl:matching-substring>
<xsl:choose>
<xsl:when test="regex-group(3)=$blue-font-end">
<xsl:value-of select="regex-group(0)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="regex-group(1)"/>
<xsl:value-of select="regex-group(2)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:variable>
<xsl:variable name="var-10">
<xsl:analyze-string select="$var-9"
regex="({$blue-font-end})(.*?)({$blue-font-end}|{$blue-font})">
<xsl:matching-substring>
<xsl:choose>
<xsl:when test="regex-group(3)=$blue-font">
<xsl:value-of select="regex-group(0)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="regex-group(2)"/>
<xsl:value-of select="regex-group(3)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:variable>
<xsl:value-of select="$var-10"/>
</xsl:function>
<!--
*************************************GENERAL TEMPLATES**************************************************
-->
<xsl:template name="LFsToBRs">
<xsl:param name="input"/>
<xsl:choose>
<xsl:when test="contains($input, ' ')">
<xsl:value-of select="substring-before($input, ' ')"/>
<xsl:text disable-output-escaping="yes">&#10;</xsl:text>
<xsl:call-template name="LFsToBRs">
<xsl:with-param name="input" select="substring-after($input, ' ')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$input"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- EXCEL WORKSHEET OPTIONS -->
<xsl:template name="worksheet-options">
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Selected/>
<FreezePanes/>
<FrozenNoSplit/>
<SplitHorizontal>1</SplitHorizontal>
<TopRowBottomPane>1</TopRowBottomPane>
<ActivePane>2</ActivePane>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>18</ActiveRow>
<ActiveCol>2</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</xsl:template>
<!-- EXCEL DOCUMENT PROPERTIES -->
<xsl:template name="document-properties">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>Mason, Huw {MDBZ~Basel}</Author>
<LastAuthor>Mason, Huw {MDBZ~Basel}</LastAuthor>
<Created></Created>
<Company></Company>
<Version>1</Version>
</DocumentProperties>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>14370</WindowHeight>
<WindowWidth>27795</WindowWidth>
<WindowTopX>480</WindowTopX>
<WindowTopY>120</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
</xsl:template>
<!-- EXCEL DOCUMENT STYLES -->
<xsl:template name="document-styles">
<ss:Styles>
<ss:Style ss:ID="Default" ss:Name="Normal">
<ss:Alignment ss:Vertical="Bottom" ss:WrapText="1"/>
<ss:Borders/>
<ss:Font ss:FontName="Arial" x:Family="Swiss" ss:Size="10" ss:Color="#000000"/>
<ss:Interior/>
<ss:NumberFormat/>
<ss:Protection/>
</ss:Style><!-- **STYLES CREATED TO REF LATER ON e.g. STYLE FOR COL HEADER**-->
<ss:Style ss:ID="sHead">
<Alignment ss:Horizontal="Center" ss:Vertical="Top" ss:WrapText="1"/>
<ss:Borders>
<ss:Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</ss:Borders>
<Font ss:FontName="Arial" x:Family="Swiss" ss:Size="9" ss:Color="#FFFFFF"/>
<ss:Interior ss:Color="#538DD5" ss:Pattern="Solid"/>
</ss:Style>
<ss:Style ss:ID="sHeadAC">
<Alignment ss:Horizontal="Center" ss:Vertical="Top" ss:WrapText="1"/>
<ss:Borders>
<ss:Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</ss:Borders>
<Font ss:FontName="Arial" x:Family="Swiss" ss:Size="9" ss:Color="#000000"/>
<ss:Interior ss:Color="#FFFF66" ss:Pattern="Solid"/>
</ss:Style>
<ss:Style ss:ID="sHeadCT">
<Alignment ss:Horizontal="Center" ss:Vertical="Top" ss:WrapText="1"/>
<ss:Borders>
<ss:Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</ss:Borders>
<Font ss:FontName="Arial" x:Family="Swiss" ss:Size="9" ss:Color="#FFFFFF"/>
<ss:Interior ss:Color="#FF9900" ss:Pattern="Solid"/>
</ss:Style>
<ss:Style ss:ID="sHeadGD">
<Alignment ss:Horizontal="Center" ss:Vertical="Top" ss:WrapText="1"/>
<ss:Borders>
<ss:Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</ss:Borders>
<Font ss:FontName="Arial" x:Family="Swiss" ss:Size="9" ss:Color="#DA9694"/>
<ss:Interior ss:Color="#000000" ss:Pattern="Solid"/>
</ss:Style>
<ss:Style ss:ID="sHeadPRM">
<Alignment ss:Horizontal="Center" ss:Vertical="Top" ss:WrapText="1"/>
<ss:Borders>
<ss:Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</ss:Borders>
<Font ss:FontName="Arial" x:Family="Swiss" ss:Size="9" ss:Color="#FFFFFF"/>
<ss:Interior ss:Color="#92D050" ss:Pattern="Solid"/>
</ss:Style>
<ss:Style ss:ID="sHeadALG">
<Alignment ss:Horizontal="Center" ss:Vertical="Top" ss:WrapText="1"/>
<ss:Borders>
<ss:Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</ss:Borders>
<Font ss:FontName="Arial" x:Family="Swiss" ss:Size="9" ss:Color="#FFFFFF"/>
<ss:Interior ss:Color="#92D050" ss:Pattern="Solid"/>
</ss:Style>
<ss:Style ss:ID="sBody">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:WrapText="1"/>
<ss:Borders>
<ss:Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<ss:Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</ss:Borders>
<ss:Interior ss:Pattern="Solid"/>
</ss:Style>
<Style ss:ID="SHyperlink" ss:Name="Hyperlink">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="Arial" x:Family="Swiss" ss:Size="10" ss:Color="#0000FF" ss:Underline="Single"/>
</Style>
</ss:Styles>
</xsl:template>
</xsl:stylesheet>
Вот образец моего выходного XML
<Row>
<Cell ss:StyleID="sBody">
<Data ss:Type="String">AVISIT</Data>
</Cell>
<Cell ss:StyleID="sBody">
<ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">Set to collected visit name [EG.VISIT] <Font html:color="#7030A0">Set to 'POST-BASELINE MINIMUM'</Font>Set to a re-defined visit range based on user-defined input. <b>Set to 'POST-BASELINE MINIMUM'</b></ss:Data>
</Cell>
</Row>
<Row>
<Cell ss:StyleID="sBody">
<Data ss:Type="String">AVISITN</Data>
</Cell>
<Cell ss:StyleID="sBody">
<ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">Set to collected <Font html:color="#0000FF">Set to 9997</Font>Set to a user defined numeric value <Font html:color="#0000FF">Set to 9997 wih the analysis visit </Font></ss:Data>
</Cell>
</Row>
Я создал xsl и сохранил его как электронную таблицу XML 2003, чтобы проверить код, и все, как ожидалось. Когда я заменяю ‹> на <
и >
, я получаю проблему, с которой я столкнулся с моим выводом
Я не знаю, связано ли это с использованием <
, а не ‹при создании xml. У кого-нибудь была подобная проблема и решал ее? Или можете увидеть, в чем моя проблема?
РЕДАКТИРОВАТЬ:
Я сделал обновления XSLT inc. пространство имен html, как предложил Мартин. Это создает XML, как я ожидал, и выглядит нормально.
Теперь проблема в том, что при открытии в Excel форматирование не отображается, я получаю простой черный текст.
Я создал пример того, как он должен выглядеть, и сохранил его как электронную таблицу XML 2003, чтобы сравнить их, и они одинаковы. Интересно: если я скопирую код из примера, созданного в Excel, и вставлю его в XML, созданный xslt, а затем открою его в Excel, форматирование сработает. Если я скопирую код из xslt created xml и вставлю его в мой пример, созданный в excel (который работал нормально), форматирование больше не работает.
XML-код значения, созданного в Excel
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s64"><Data ss:Type="String">AVISIT</Data></Cell>
<Cell ss:StyleID="s65"><ss:Data ss:Type="String"
xmlns="http://www.w3.org/TR/REC-html40">Set to collected visit name [EG.VISIT] <Font
html:Color="#7030A0">Set to 'POST-BASELINE MINIMUM'</Font>Set to a re-defined visit range based on user-defined input. <B>Set to 'POST-BASELINE MINIMUM'</B></ss:Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s64"><Data ss:Type="String">AVISITN</Data></Cell>
<Cell ss:StyleID="s65"><ss:Data ss:Type="String"
xmlns="http://www.w3.org/TR/REC-html40">Set to collected <Font
html:Color="#0000FF">Set to 9997</Font>Set to a user defined numeric value<Font
html:Color="#0000FF">Set to 9997 wih the analysis visit</Font></ss:Data></Cell>
</Row>
Вот как выглядит xml, созданный моим XSLT:
<Row>
<Cell ss:StyleID="sBody">
<Data ss:Type="String">AVISIT</Data>
</Cell>
<Cell ss:StyleID="sBody">
<ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">Set to collected visit name [EG.VISIT] <Font html:Color="#7030A0">Set to 'POST-BASELINE MINIMUM'</Font>Set to a re-defined visit range based on user-defined input. <B>Set to 'POST-BASELINE MINIMUM'</B>
</ss:Data>
</Cell>
</Row>
<Row>
<Cell ss:StyleID="sBody">
<Data ss:Type="String">AVISITN</Data>
</Cell>
<Cell ss:StyleID="sBody">
<ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">Set to collected <Font html:Color="#0000FF">Set to 9997</Font>Set to a user defined numeric value <Font html:Color="#0000FF">Set to 9997 wih the analysis visit </Font>
</ss:Data>
</Cell>
</Row>
Итак, несмотря на то, что xml-код один и тот же, в зависимости от того, как он был создан, определяется, работает он или нет.
Вопрос: Могут ли быть какие-то различия в кодировке, объясняющие такое поведение?
xsl:value-of
, никогда не создаст элементfont
, это точно. Что касается всего подхода, поскольку вы уже используете XSLT 2.0, какой именно процессор XSLT вы используете? Используя выпуск 9.7 Saxon 9 (даже выпуск HE), вы можете переключиться на XSLT 3.0, а затем использовать w3.org/TR/xpath-functions-31/#func-parse-xml-fragment для содержимогоcolumnDerivationDescription
, чтобы просто подтолкнуть содержимое к правильному шаблоны, преобразующие элементselect
по мере необходимости. Это работает намного лучше, чем попытки проанализировать данные. - person Martin Honnen   schedule 10.08.2016sBody
наStyleID
. Но как только я исправил все эти значения на значения, взятые из сохраненного листа Excel, сгенерированный фрагмент строк и ячеек отображается с цветом или полужирным шрифтом для тех частей текста, которые получили особое форматирование. - person Martin Honnen   schedule 12.08.2016