Это вопрос переделок / новый после того, как я неправильно понял свой предыдущий вопрос, спросив о неправильном элементе, так что ...
Я пытаюсь сопоставить и скрыть внешнюю ссылку в следующем элементе 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), и он сразу заработал. Очевидно, что файл ссылок обрабатывается после элементов, и все мои совпадения были перезаписаны последующими совпадениями шаблонов.