2017-10-03 6 views
0

donné ce xml:XPATH tester deux éléments avec la même attribut

<illustratedPartsCatalog> 
    <figure id="fig1">...</figure> 
    <catalogSeqNumber>...</catalogSeqNumber> 
    <figure id="fig2" changeType="delete">...</figure> 
    <catalogSeqNumber>...</catalogSeqNumber> 
    <figure id="fig3" changeType="delete">...</figure> 
    <catalogSeqNumber>...</catalogSeqNumber> 
    <figure id="fig6">...</figure> 
</illustratedPartsCatalog> 

De illustratedPartsCatalog est-il possible d'écrire plus XPath suivante compacte?

<xsl:if test="figure/@changeType='delete' or descendant::*/@changeType='delete'"> 

Par exemple, j'ai essayé de nombreuses variantes de ce qui tombe en panne:

*[figure | descendant]/@changeType='delete' 

Répondre

1

Comme figure est un descendant de illustratedPartsCatalog vous pouvez simplement écrire ce ...

<xsl:if test="descendant::*/@changeType='delete'"> 

Ou mieux encore, ce ...

<xsl:if test=".//*/@changeType='delete'"> 
+0

Merci, Tim, j'aurais dû m'en rendre compte. Que faire si je suis sur 'catalogSeqNumber' cela peut-il être condensé:' '? – Caroline

+0

Je pense que le mieux que vous pouvez faire pour cela est '' –

+0

Merci, TIm ! – Caroline