我正在使用以下一些我无法掌握的代码,特别是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">
我不确定@
的目的是什么或括号如何相互作用。 \
也让我感到困惑,因为我猜它没有划分任何东西。
基本上,我使用的语言和语法是什么?
答案 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,因为正则表达式是文本。
强烈建议您添加到工具箱中。