2013-03-18 2 views
1

Позволяет сказать есть этот базовый XML-документ:Соответствие шаблону xslt для значения дочернего элемента с определенным атрибутом?

<result name="response" numFound="73" start="0"> 
    <doc> 
     <str name="contentType">Content1</str> 
     <str name="content">Some content here</str> 
    </doc> 
    <doc> 
     <str name="contentType">Content2</str> 
     <str name="content">Some other content</str> 
    </doc> 
</result> 

Я планирую использовать другой шаблон для каждого типа контента. Какие аргументы соответствуют шаблону? Я не смог понять, как сопоставлять другие дочерние элементы doc, когда только поле contentType является конкретным значением.

+0

Вы забыли тег '' на 4-й или 5-й строчке? – JLRishe

ответ

5

Это похоже на то, что вы собираетесь на что-то вроде этого:

<xsl:template match="doc[str[@name = 'contentType'] = 'Content1'] 
        /str[name = 'Content']"> 
    <!-- Process Content1 content str --> 
</xsl:template> 

<xsl:template match="doc[str[@name = 'contentType'] = 'Content2'] 
        /str[name = 'Content']"> 
    <!-- Process Content2 content str --> 
</xsl:template> 

Или, возможно, что-то вроде этого?

<xsl:template match="doc[str[@name = 'contentType'] = 'Content1']"> 
    <!-- Process Content1 doc --> 
</xsl:template> 

<xsl:template match="doc[str[@name = 'contentType'] = 'Content2']"> 
    <!-- Process Content2 doc --> 
</xsl:template> 

Был бы кто-нибудь из тех, кого вы ищете?

+0

Второй - это именно то, что я ищу. Это также одна из итераций, которые я пробовал. Похоже, что большая часть моей проблемы была связана с общим совпадением шаблона по умолчанию (для неизвестного контента), который соответствовал более высокому приоритету. – tlum

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