首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询XSLT,返回为"stan“过滤的名称

查询XSLT,返回为"stan“过滤的名称
EN

Stack Overflow用户
提问于 2013-02-18 16:03:09
回答 1查看 176关注 0票数 0
代码语言:javascript
复制
<xsl:template match="country[@name]">
    <xsl:value-of select="."/>
    <xsl:if test="country=[*stan"]" >
    </xsl:if> </xsl:template> 

有人能告诉我这个查询哪里出错了吗?我应该只返回其中带有"stan“的国家的名称(土耳其等)。XML数据包括国家/地区、姓名、人口。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-18 16:21:21

您的代码中有两处错误:

在if语句上

  1. XPath表达式,这是错误的,因为它不遵循XPath的语法。如果要在If语句中检查国家名称是否包含stan,则XPath表达式应为:

country countries (@ name,'stan‘)

  • 即使进行了更正,样式表也不会匹配其中包含’stan‘的国家名称,因为匹配表达式将匹配具有名称属性( country @ name )的所有国家,然后您将在模板中使用value-of输出国家名称。

修复代码的一种解决方案是将value-of元素更改为if元素,并将XPath表达式从我之前指定的表达式更改为if元素。

但是,在输入模板之前匹配条件要简单得多。因此,解决方案是:

代码语言:javascript
复制
<xsl:template match="country[contains(@name, 'stan')]">
    <xsl:value-of select="@name" />
</xsl:template>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14931777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档