2013-07-25 2 views
0
<xxx> 
     <EntityOverview> 
     <LevelId>7</LevelId> 
     <LongName>trombone</LongName> 
     </EntityOverview> 
     <EntityOverview> 
     <LevelId>10</LevelId> 
     <LongName>bananaphone</LongName> 
     </EntityOverview> 
    </xxx> 

Я хочу принести, например, данные LevelId 10 затем LevelId 7, чтобы получить что-то вроде этого:XSLT выборки узлов с определенным значением детской

10 bananaphone 7 тромбон

Любая идея о как написать XSLT? Im начинает изучать

Thanks

ответ

1

Если вы хотите обработать элементы в другом порядке, чем предоставление в документе, то вы должны применить-шаблоны в порядке, вы хотите, например,

<xsl:template match="/"> 
    <xsl:apply-templates select="//EntityOverview[LevelId = 10]"/> 
    <xsl:apply-templates select="//EntityOverview[LevelId = 7"/> 
</xsl:template> 

Или вы можете сортировать на LevelId например

<xsl:template match="/"> 
    <xsl:apply-templates select="//EntityOverview"> 
    <xsl:sort select="LevelId" data-type="number" order="descending"/> 
    </xsl:apply-templates> 
</xsl:template> 

С XSLT 2.0 вы можете написать материал в более компактной форме:

<xsl:template match="/"> 
    <xsl:apply-templates select="//EntityOverview[LevelId = 10], //EntityOverview[LevelId = 7"/> 
</xsl:template> 
+0

ничего себе, это именно то, что я искал, спасибо. – MoreCoffee

0

Возможно что-то вроде этого? (При условии, ххх корневой элемент)

<xsl:template match="//xxx/EntityOverview"> 
    <xsl:value-of select="LevelId"/><xsl:text> </xsl:text><xsl:value-of select="LongName"/><xsl:text> </xsl:text> 
</xsl:template> 
+0

спасибо, но как я могу указать я хочу LevelId 10, например? – MoreCoffee

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