短い質問:属性(@type!= 'x')に一致しないが、属性が存在しない(??)すべてのノードを選択したい。現在、他のノードには属性がないため、何も返されません。
背景:XMLがあります。一方にはtype = "feature"がありますが、他のすべてには 'type'属性がありません。
<image type="feature"><description>X</description><url>media/designer_glass_tile_04.jpg</url><height></height><width/></image>
<image><description>Designer Glass 05</description><url>media/designer_glass_tile_05.jpg</url><height></height><width/></image>
<image><description>Designer Glass 06</description><url>media/designer_glass_tile_06.jpg</url><height></height><width/></image>
<image><description>Designer Glass 07</description><url>media/designer_glass_tile_07.jpg</url><height></height><width/></image>
<image><description>Designer Glass 08</description><url>media/designer_glass_tile_08.jpg</url><height></height><width/></image>
XSLスタイル:
<div id="gallery">
<div id="feature" >
<xsl:apply-templates select="image[@type='feature']"/>
</div>
<div id="thumbs">
<xsl:apply-templates select="image[@type!='feature']"/>
</div>
</div>
次のコードは、type属性が存在しないすべてのノードを選択します。
select="image[not(@type)]"
このロジックをコードに追加します。
述語で_!=
_の代わりにnot()
を使用してみてください...
_ <div id="gallery">
<div id="feature" >
<xsl:apply-templates select="image[@type='feature']"/>
</div>
<div id="thumbs">
<xsl:apply-templates select="image[not(@type='feature')]"/>
</div>
</div>
_