XSLT中的选择属性使用什么语言?

时间:2016-01-14 00:54:51

标签: xml xslt

我正在使用以下一些我无法掌握的代码,特别是select=部分中的内容。我不知道如何分解它(我假设有一种更好的格式化方式)并且无法分辨这些碎片是如何相互作用的。

 <xsl:for-each select="field[@key = 'household_live'][@prompt != current()/prompt[@key = 'household_live'][text() = 'Parent 1']/@id][@prompt != current()/prompt[@key = 'household_live'][text() = 'Parent 2']/@id]">
    <xsl:variable name="id" select="position()" />
    <xsl:variable name="name" select="concat(parent::*/field[@key = fw:replace(current()/@key, 'live', 'first')][@order = current()/@order]/text(), ' ', parent::*/field[@key = fw:replace(current()/@key, 'live', 'last')][@order = current()/@order]/text())" />
    <xsl:for-each select="parent::application">

我不确定@的目的是什么或括号如何相互作用。 \也让我感到困惑,因为我猜它没有划分任何东西。

基本上,我使用的语言和语法是什么?

2 个答案:

答案 0 :(得分:2)

语言是XPath。 XPath是一种专门用于导航XML文档结构的语言,@符号表示属性,/符号用作路径说明符,类似文件系统中的文件,除了XML文档中的节点。 XPath带有各种函数,如position(),concat()等,Axes说明符如parent :: etc.

XPath与XSLT紧密协作。它几乎就是XSLT文档访问它正在阅读的XML文档的方式。

只需谷歌XPath了解更多信息。

MDN教程here

答案 1 :(得分:1)

XPath

XPath是一个非常有表现力的标准,用于选择XML文档的各个部分。 XSLT严重依赖它。您必须为XSLT学习它,但它的用处超越了XSLT:它在XML Schema中使用,而且许多其他语言都有XPath库。必须选择XML文档的任何部分,包括测试XML,网页抓取和其他应用程序。

XPath是XML,因为正则表达式是文本。

强烈建议您添加到工具箱中。