Как выбрать предка на основе атрибута предка - PullRequest
0 голосов
/ 21 мая 2010

Я новичок в этом, поэтому, пожалуйста, потерпите меня ...

Мне нужно очень просто изменить содержимое на основе совпадения шаблона: Тема / тело / раздел / название

Этот шаблон соответствия отлично работает. Тем не менее, мне нужно, чтобы это происходило только в том случае, если элемент theme имеет элемент title со значением «Preface».

Может кто-нибудь помочь с кодом?

Вот код:

<topic>
  <title>Preface</title>
  <body>
    <p>This publication was written for...</p>
    <section>
      <title>Publication Information/Version</title>

Вот xslt:

<xsl:template match="topic/body/section/title">
        <fo:block xsl:use-attribute-sets="prefacetitle" 
            keep-with-next.within-page="always" 
            keep-together.within-column="always" 
            color="{$docColor}">
            <!--<fo:marker marker-class-name="title-marker"><xsl:value-of select="normalize-space(.)"/></fo:marker>-->
            <xsl:apply-imports/>
        </fo:block>
    </xsl:template>

<xsl:attribute-set name="prefacetitle" >
        <xsl:attribute name="font-family">Trebuchet MS</xsl:attribute>
        <xsl:attribute name="font-size">28pt</xsl:attribute>
        <xsl:attribute name="font-weight">bold</xsl:attribute>
        <xsl:attribute name="margin-bottom">9pt</xsl:attribute>
        <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
    </xsl:attribute-set>

Этот код работает, но я хочу, чтобы он изменял раздел / заголовок, только если у него есть предок тема / заголовок [text () = 'Предисловие'].

имеет смысл?

1 Ответ

2 голосов
/ 21 мая 2010

Без кода сложно сказать, что вы хотите, но может быть что-то вроде этого:

<xsl:template match="topic[title/text()='Preface']/body/section/title" >

Если нет, уточните свой вопрос.

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