Нужно скрывать внешнюю ссылку только тогда, когда она появляется в элементе p с определенным атрибутом - PullRequest
0 голосов
/ 24 октября 2011

Это вопрос переделок / новый после того, как я неправильно понял свой предыдущий вопрос, спросив о неправильном элементе, так что ...

Я пытаюсь сопоставить и скрыть внешнюю ссылку в следующем элементе p с атрибутом LC LRCaseName:

<p outputclass="LC LRCaseName"><i>Naseem Akhtar v Birmingham City Council</i> [2011] EWCA Civ 383 <xref href="#Public_PUBLICLAW_PLLR_2011PLLR002">Click here for transcript</xref></p>

так что я получаю " Насим Ахтар против городского совета Бирмингема [2011] EWCA Civ 383 "

У нас есть другие внешние ссылки в других p выходных классах, которые нам нужно отобразить, иначе я бы скрыл их с <<code>xsl:template match="p/xref"/> согласно предложению Дмитрия Новатчева.

Этот конкретный xref всегда будет содержать «Нажмите здесь для расшифровки», но href будет отличаться.

спасибо.

EDIT:

Я пробовал следующий код, который не делает фон внешней ссылки красным:

<xsl:template match="p[@outputclass='LC LRCaseName']/xref">
    <fo:block background-color="red" >
        <xsl:apply-templates/>
    </fo:block>
</xsl:template> 

но если я использую это:

<xsl:template match="p[@outputclass='LC LRCaseName']">
    <fo:block background-color="red" >
        <xsl:apply-templates/>
    </fo:block>
</xsl:template> 

Он делает весь фон элемента P красным, включая часть внешних ссылок.

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

Я только что подумал, что в этой системе есть еще один xsl-файл, который соответствует xref. Мне интересно, переписываются ли мои изменения этим файлом. Позвольте мне изучить это подробнее.

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

Просто поместил этот самый код

<xsl:template match="p[@outputclass='LC LRCaseName']/xref" />

в dita2fo-links.xsl, а не в текущий файл, над которым я работал (dita2fo-elems.xsl), и он сразу заработал. Очевидно, что файл ссылок обрабатывается после элементов, и все мои совпадения были перезаписаны последующими совпадениями шаблонов.

Ответы [ 2 ]

1 голос
/ 24 октября 2011

Ваш селектор совпадений для элемента xref может также включать значение атрибута, например, следующее:

p[@outputclass = 'LC LRCaseName']/xref
1 голос
/ 24 октября 2011

Это преобразование дает желаемый результат :

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="p[@outputclass='LC LRCaseName']/xref"/>
</xsl:stylesheet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...