加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – XSLT apply-template select中的“@ * | node()”是什么

发布时间:2020-12-16 08:04:35 所属栏目:百科 来源:网络整理
导读:我读了一些XSLT的例子,发现代码: xsl:apply-template select="@*|node()"/ 这意味着什么? XPath表达式@ * | node()选择属性节点(@ *)和所有其他类型的XML节点(node())的并集。 这是attribute :: * |的缩写child :: node()。 在XSLT中,XPath是相对于上下
我读了一些XSLT的例子,发现代码:
<xsl:apply-template select="@*|node()"/>

这意味着什么?

XPath表达式@ * | node()选择属性节点(@ *)和所有其他类型的XML节点(node())的并集。

这是attribute :: * |的缩写child :: node()。

在XSLT中,XPath是相对于上下文节点,默认的selection axis是子轴,所以表达式

>选择上下文节点的所有属性和直接子项(当用作select =“…”表达式时,例如< xsl:apply-templates>)
>匹配所有属性和其他节点,无论上下文(在< xsl:template>中用作match =“”表达式时) – 请注意,选择节点并匹配它们之间存在差异:上下文节点仅对选择有意义。

想象下面的节点是上下文节点:

<xml attr="value">[
  ]<child />[
  ]<!-- comment -->[
  ]<child>
    <descendant />
  </child>[
]</xml>

表达式node()不仅将选择< child>节点,而且还有四个仅空白的文本节点(为了可见性而由[和]表示)和注释。 <后裔>没有被选中。

XML的一个特殊特征是属性节点不属于它们所属元素的子元素(尽管属性的父属是它所属的元素)。

这种非对称关系使得有必要分别选择它们,因此@ *。

它匹配属于上下文节点的任何属性节点,因此也将选择attr =“value”。

|是XPath联合运算符。它从两个单独的节点集创建一个单个节点集。

< xsl:apply-templates>然后找到适当的< xsl:template>为每个选定的节点运行它为该节点。这是上面提到的模板匹配部分。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读