2014-02-11 2 views
1

На моем входе xml у меня есть фигуры, изображения и его сшивающий текст во многих местах. Когда я пытаюсь скомпоновать перекрестную ссылку с помощью тега, она также имеет ссылку на текст подписи. Но мне нужно кодировать перекрестную ссылку везде, кроме текста подписи.Избегайте ссылки на подпись рисунка, а также Как

<par class="para">In addition to the core publications, there is also a complementary set of ITIL publications providing guidance specific to industry sectors, organization types, operating models and technology architectures on `Figure 1.1`.</par> 

     <par class="figurecaption">Figure 1.1 The ITIL service lifecycle</par> 
     <par class="image">gr000001</par> 

Мой код XSLT идет

<xsl:template match="text()" exclude-result-prefixes="html"> 
<xsl:analyze-string select="." regex="(Chapter|Figure|Table|Appendix)\s(\d+|[A-Z])(\.)?(\d+)?|(www.[^ ]+)|(http://[^ ]+)|(Section|section)\s(\d)\.(\d+)(\.)?(\d+|\d)?(\.)?(\d)?" flags="x"> 
<xsl:matching-substring>   
<a><xsl:attribute name="href"> 

.....

производит результат

<p>In addition to the core publications, there is also a complementary set of ITIL publications providing guidance specific to industry sectors, organization types, operating models and technology architectures on `<a href="chapter1.html#Fig1">Figure 1.1</a>`.</p> 

    <p><a href="chapter1.html#Fig1">Figure 1.1</a> The ITIL service lifecycle</p> 
    <img src="gr000001"/> 

Но мне нужно

<p>In addition to the core publications, there is also a complementary set of ITIL publications providing guidance specific to industry sectors, organization types, operating models and technology architectures on `<a href="chapter1.html#Fig1">Figure 1.1</a>`.</p> 

<p>`Figure 1.1` The ITIL service lifecycle</p> 
     <img src="gr000001"/> 

Любая идея?

ответ

1

Я не совсем уверен, что вы просите, но как насчет:

<xsl:template match="text()[parent::par/@class='para']"> 

Таким образом, par элементов где @class='figurecaption' исключены из анализа строки.

При необходимости, вы можете написать второй шаблон, соответствующий текст подписи к рисункам и манипулировать ею отдельно:

<xsl:template match="text()[parent::par/@class='figurecaption']"> 
+0

@all Я начал иметь тему в университете, но посмотрите на мнения о ТАК! Вы когда-нибудь использовали 'XSLT' в производстве? Спасибо – loveNoHate

+0

Это, конечно, немного не по теме, но, поскольку я пишу в любом случае: Да, большинство ответчиков XSLT создали или поддерживали продуктивные системы, которые используют XSLT, я бы осмелился. –

+0

Привет, я основываюсь на предположении, что вопрос является любопытным на взглядах! Может у нас небольшой [чат] (http://chat.stackoverflow.com/rooms/47231/xslt)? благодаря – loveNoHate

Смежные вопросы