首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >中的XSLT检查节点可用性

中的XSLT检查节点可用性
EN

Stack Overflow用户
提问于 2015-12-17 23:47:30
回答 4查看 140关注 0票数 2

我在我的项目中使用XSLT 1.0。在我的XSLT转换中,我必须检查一个特定的元素,如果该元素存在,我必须执行一些连接或其他连接操作。

然而,我在这里找不到一个选项,比如一些内置函数。

需求是这样的

代码语言:javascript
复制
<Root>
  <a></a>
  <b></b>
  <c></c>
</Root>

这里是元素<a>,传入请求有效载荷,然后我们需要执行<b><c>的连接,否则<c><b>

EN

回答 4

Stack Overflow用户

发布于 2015-12-18 00:50:11

您可以使用模板匹配来完成此操作:

代码语言:javascript
复制
<xsl:template match="Root[not(a)]">
  <xsl:value-of select="concat(c, b)"/>
</xsl:template>

<xsl:template match="Root[a]">
  <xsl:value-of select="concat(b, c)"/>
</xsl:template>
票数 3
EN

Stack Overflow用户

发布于 2015-12-18 00:50:29

试着这样做:

代码语言:javascript
复制
<xsl:template match="/Root">
    <xsl:choose>
        <xsl:when test="a">
            <!-- do something -->
        </xsl:when>
        <xsl:otherwise>
            <!-- do something else -->
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

解释:该测试返回由表达式a选择的节点集的布尔值。如果node-set不为空,则结果为true。

票数 1
EN

Stack Overflow用户

发布于 2015-12-18 00:50:44

使用xsl:choose测试元素是否存在

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   
    version="1.0">

    <xsl:template match="/Root"> 
        <xsl:choose>
            <xsl:when test="a">
                <xsl:value-of select="concat(c, b)"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="concat(b, c)"/>
            </xsl:otherwise>
        </xsl:choose>  
    </xsl:template>

</xsl:stylesheet>

或在用于模板匹配的谓词中:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   
    version="1.0">

    <xsl:template match="/Root[a]"> 
         <xsl:value-of select="concat(c, b)"/> 
    </xsl:template>

    <xsl:template match="/Root[not(a)]"> 
         <xsl:value-of select="concat(b, c)"/>
    </xsl:template>

</xsl:stylesheet>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34338654

复制
相关文章

相似问题

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