Необходимо удалить Примечание: с начала строки с помощью XSLT - PullRequest
0 голосов
/ 26 августа 2011

Мне было поручено стилизовать XML, и до сих пор почти все теги, которые мне дали, были либо p, либо ph, которые просто отображают содержимое тега на экране, и я могу стилизовать их по необходимости

например:

<p outputclass="LC AStatProv">Council Regulation (EC) No 2201/2003 of 27 November 2003 Concerning Jurisdiction and the Recognition and Enforcement of Judgments in Matrimonial Matters and in Matters of Parental Responsibility, repealing Regulation (EC) No 1347/2000 (Brussels II Revised) (2003) OJ L 338/1, Art&#x00A0;20</p>

будет отображаться как:

Постановление Совета (ЕС) № 2201/2003 от 27 ноября 2003 года о юрисдикции, признании и исполнении судебных решений по брачно-семейным делам и по вопросам родительской ответственности, отменяющее постановление (ЕС) № 1347/2000 (пересмотренный в Брюсселе II) (2003 год) OJ L 338/1, Art & # x00A0; 20

Сегодня я заметил, что был использован новый тег note , и это приводит к тому, что к началу каждой строки добавляется «Note:», например:

<p outputclass="LC ACourt"><note outputclass="CaseSearchCourt">Court of Appeal</note></p>

будет отображаться как:

Примечание: Re A (Похищение: временные указания: размещение в местных органах власти) [2010] EWCA Civ 586 [2011] 1 FLR 1

FO, созданная для этого:

<fo:block><fo:inline font-weight="bold" border-right-width="0pt" border-left-width="0pt">Note: </fo:inline>  Court of Appeal</fo:block>

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

<xsl:template match="note">
        <note>
            <xsl:if test="contains(., 'Note:')">
                <xsl:call-template name="remove">
                    <xsl:with-param name="value" select="."/>
                </xsl:call-template>
            </xsl:if>
        </note>
    </xsl:template>
<xsl:template name="remove">
        <xsl:param name="value"/>
        <xsl:value-of select="concat(substring-before($value, 'Note:'), substring-after($value, 'Note:'))"/>
    </xsl:template>

Я пытался увидеть, откуда XSLT получает «Примечание:», но не могу найти его нигде, поэтому моя следующая мысль - попытаться сопоставить шаблон со строкой и удалить «Примечание:» из начала строки. Это хороший способ сделать это и как мне это сделать?

спасибо.

РЕДАКТИРОВАТЬ: Просто чтобы подвести итог моего бессвязного и запутанного вопроса.

Где это делает:

Примечание: Re A (Похищение: временные указания: размещение в местных органах власти) [2010] EWCA Civ 586 [2011] 1 FLR 1

Я просто хочу, чтобы это выглядело:

Re A (Похищение: временные указания: размещение в местных органах власти) [2010] EWCA Civ 586 [2011] 1 FLR 1

РЕДАКТИРОВАТЬ 2 и ответ

Мои первоначальные исследования были основаны на поиске примечания: который не был найден. Я нашел следующее:

<xsl:template match="*[contains(@class,' topic/note ')]">

и затем прокомментировал следующие строки:

<!--<xsl:text>Note</xsl:text>-->
                    </xsl:otherwise>
                </xsl:choose>
                <!--<xsl:text>: </xsl:text>-->
            </fo:inline>
            <xsl:text>  </xsl:text>
            <xsl:apply-templates/>

И я избавился от «Примечание:».

РЕДАКТИРОВАТЬ 3:

На самом деле это не сработало, так как создавало открывающийся блок, но не закрывало его, поэтому я в итоге удалил весь <xsl:template match="*[contains(@class,' topic/note ')]">, так как нам не нужны никакие типы заметок в нашей системе

1 Ответ

0 голосов
/ 30 августа 2011

На самом деле это не сработало, так как создавало открывающийся блок, но не закрывало его, поэтому я в итоге удалил весь <xsl:template match="*[contains(@class,' topic/note ')]">, так как нам не нужны никакие типы заметок в нашей системе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...