2015-07-22 2 views
0

Я хочу, чтобы удалить элемент из barУдаление XML узла В Matching Context

<data><foo>1</foo><bar><bla /></bar></data> 
<data><foo>2</foo><bar><bla /></bar></data> 
<data><foo>3</foo><bar><bla /></bar></data> 

но только если foo соответствует 2. Таким образом, следует результат выглядит следующим образом:

<data><foo>2</foo></data> 

Я использую следующий код:

<xsl:template match="node()|@*"> 
    <xsl:copy> 
     <xsl:apply-templates select="node()|@*" /> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="bar[../foo = 2]" /> 

Есть ли лучший способ?

+0

Вы использовали тождественное преобразование шаблона рекурсивно обрабатывать XML , и это лучший способ. –

ответ

1

Это еще один способ, но не уверен, если это будет делать никакой разницы, потому что соответствие условие достаточно просто, в первую очередь:

<xsl:template match="data[foo = 2]/bar" /> 
Смежные вопросы