微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xml – 如果属性值不等于某些值,如何获取它们?

我有一个像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:if’..我写了我的xslt(我正在使用xslt 1.0):

<xsl:value-of select="movies/movie/@name[not(self::aaa) and not(self::bbb) and not(self:ddd)]"/>

但编译器抱怨这句话中有语法错误……我无法弄清楚为什么..

所以有人可以帮我吗?非常感谢!!

解决方法

试试这个XPath表达式:

movies/movie[@name!='aaa' and @name!='bbb' and @name!='ddd']/@name

或者这个:

movies/movie/@name[.!='aaa' and .!='bbb' and .!='ddd']

后者较短,但前者可以很容易地扩展到检查其他返回不仅名称,而是整个< movie> element – 最后删除/ @ name.或者如果您想要第二个,只需在末尾添加/ ..

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。