在 XSLT 中,该match
模式接受 XPath 表达式的子集。因此,可以作为match
属性值出现的表达式集由两个规范管理:XPath 规范本身,它定义了匹配模式是其子集的语言,以及 XSLT 规范,它定义了子集。
如果您正在使用 XSLT 1.0,则权威帐户由XPath 1.0规范和XSLT 1.0规范提供。XPath 的本质是语言的大小是无限的。不可能有详尽的法律模式清单。相反,合法模式集由 XSLT 和 XPath 规范中给出的上下文无关文法定义。
如果您使用 XSLT 2.0,相关规范是XPath 2.0 (Second Edition) 和XSLT 2.0。同样,合法匹配模式的定义使用部分在 XSLT 规范和部分在 XPath 规范中定义的语法。
你问什么是 Xpath 中的“元素”?node() 包括什么?哪些语句包含属性?等等
两个版本的 XPath 都定义了如何针对 XPath 数据模型的实例评估表达式;是数据模型指定所有元素节点都是节点,但并非所有节点都是元素节点(依此类推)。XPath 1.0 的数据模型更简单,通常更容易理解,但它的定义相当不正式,并且存在一些读者认为有问题的差距和矛盾;它在 XPath 1.0 规范的第 5 节中定义。XPath 2.0 数据模型不仅被 XPath 和 XSLT 使用,也被 XQuery 使用;它是在名为XQuery 1.0 and XPath 2.0 Data Model (XDM)的规范中定义的。
一本关于 XSLT 的好书通常也会很好地说明数据模型。当然,取决于书的风格,它可能或多或少详尽无遗,或多或少会注意一些极端情况。有几本好书,我听到人们对 Doug Tidwell 的书说好话。但是我在每个严肃的 XSLT 程序员书架上都找到的一本 XSLT 书是 Michael Kay 写的。(实际上,我认识的最认真的 XSLT 程序员拥有两个:XSLT 1.0 版本和 XSLT 2.0 版本。)
从您问题的措辞看来,您可能还想阅读一些对 XML 本身的系统介绍。