我有一個XML這樣的:如何獲得屬性值,如果它們不等於某些值?
<movies>
<movie name="aaa">
...
</movie>
<movie name="bbb">
...
</movie>
<movie name="ccc">
...
</movie>
<movie name="ddd">
...
</movie>
<movie name="eee">
...
</movie>
</movies>
我想獲得該電影的名字,如果它不是「AAA」或「BBB」,或「DDD」。所以,我想我的輸出是:
ccc
eee
因爲我有一些限制,我不認爲這是適合使用「的xsl:如果」 ..我寫我喜歡的XSLT(我使用XSLT 1.0 ):
<xsl:value-of select="movies/movie/@name[not(self::aaa) and not(self::bbb) and not(self:ddd)]"/>
但是,編譯器抱怨有這sentence..and我想不出一個語法錯誤,爲什麼..
所以可能有人幫助我嗎?非常感謝!!
嗨,謝謝你的回答。第一個解決方案奏效。其實我也想出了那個,但是因爲我是xslt的新手,我想知道第一個xpath是否會讓選擇變慢? – 2013-04-08 22:13:21
@ D.Q .:歡迎您:)如果您真的只需*名稱屬性,那麼第二個表達式就是要走的路。如果你需要整個'',那麼你*必須使用這樣的東西:' Name: xsl:for-each>'。或者更好:' '。我無法進一步幫助您,因爲我不知道XML的結構,也不瞭解您的轉換的預期結果。 –
2013-04-08 22:22:02
描述:
我明白了你的觀點:)並且還有一個問題,如果我還有其他幾個限制,例如我需要排除的名字的數量有點大,比如8或10.還有什麼其他方式可以處理它,這樣我就不會有很長的xpath表達式,這對於進一步的擴展來說不是很好。 .. – 2013-04-08 22:30:49