4.xpath的语法
我们在前面已经提到过,xpath是用来帮助xslt在xml源文档中查找定位信息的语言。在实际使用过程中,xpath和xslt总是混在一起使用,在上面一章的语法例子中我们已经有使用到xpath的语法,只是没有明确点出。但w3c将它们分成两个标准,所以我们也将它们拆成两章来讲解。
4.xpath的语法
4.1 当前位置
4.2 寻址操作
4.3 运算符
4.4 功能函数
4.1 当前位置
当我们使用xslt处理xml源文档是,我们用context来表示当前正在被模板处理的节点位置。比如xsl:template match="/"语句中表示context在文档的根(root)节点。我不知道如何准确的翻译context这个词,它类似于c语言里的指针,表示程序当前运行的位置。理解context对于正确处理xsl模板非常重要,当您的xsl模板输出的文档和您想要的不一样,最先应该分析的就是context在哪里。
location paths是用于设定你想要寻找的context节点位置。就类似dos的目录命令。我们看个例子
<xsl:for-each select="child::people/descendant::person">
其中child::people/descendant::person就是xpath语法,这个表达式就是一个location paths,代码说明要显示所有people元素的子元素和所有person元素的子元素。通常我们会采用更简单的写法:
<xsl:for-each select="people/person">
我们来解释path的两种表示方法:"/"和"/"。
"/"是表示当前文档的节点,类似dos目录分割符。例如:/people表示选择根节点下的people元素;people/person表示选择people元素下所有的peson子元素。
"/"则表示当前文档所有的节点。类似查看整个目录。例如:/people表示选择文档中所有的people元素,无论它在什么层次;people/person表示在people元素下所有的person元素,无论它的层次多深。