0

我试图理解这个 xslt。

下面的 xslt 命令究竟选择了什么?什么是“following-sibling”、“aic”和“pstyle”?

“aic”似乎是一个名称空间。

下面的 xslt 使用什么 xml 输入?

<xsl:stylesheet exclude-result-prefixes="aic" 
    version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:aic="http://ns.adobe.com/AdobeInCopy/2.0/" >

<xsl:template match="/">

    <xsl:value-of select="following-sibling::aic:pstyle"/>
</xsl:template>
</xsl:stylesheet>
4

1 回答 1

1
following-sibling::aic:pstyle
  • following-sibling,表示查找节点的“方向”,在这种情况下,它查看按文档顺序位于当前上下文节点之后但与当前节点共享相同父节点的节点。如果您不指定轴,则默认值为child,它会查找当前上下文节点的子节点。

  • aic:pstyle是一种选择器,用于查找本地名称为且名称空间 URI 为(映射到样式表中的前缀)的元素。pstylehttp://ns.adobe.com/AdobeInCopy/2.0/aic

源 XML 不需要使用相同的前缀,例如,表达式将匹配看起来像的元素

<pstyle xmlns="http://ns.adobe.com/AdobeInCopy/2.0/">

或者

<foo:pstyle xmlns:foo="http://ns.adobe.com/AdobeInCopy/2.0/">

在原始 XML 中。

正如 JLRishe 指出的那样,如果当前上下文是文档节点/,则此特定 XPath 将不匹配任何内容,要使表达式有意义,它必须在当前节点是元素(或注释、处理指令或文本节点)至少向下两层,即文档元素的子元素或更深。

<example xmlns="http://ns.adobe.com/AdobeInCopy/2.0/">
  <pstyle id="1"/>
  <foo/>
  <pstyle id="2"/>
  <pstyle id="3"/>
</example>

如果将该foo元素作为上下文节点执行,则表达式将选择 pstyle 元素 2 和 3,但不会选择 1。

于 2013-02-06T12:54:21.213 回答