xslt - XPath 引用

标签 xslt xpath

我不知道我要找的东西的正确术语,但我要找的是一个完整的引用,可以放在双引号之间的语句,比如 *node()@* 以及所有列出的 here加上任何其他存在的。

<xsl:template match="*">

我链接到的答案提供了一些细节,但还不够。例如,关于我上面给出的示例,该答案说“可以应用于任何元素”,但在 Xpath 中什么被认为是“元素”? node() 包括什么?哪些语句包含属性?等

我搜索了引用文献 herehere我正在慢慢地通过 this书,但我没有看到我想要的信息,这基本上是一个综合的(希望是详尽的)声明列表及其含义。这样的列表是否存在,如果存在,它在哪里?免费很好,但不是必需的。

最佳答案

在 XSLT 中,match 模式接受 XPath 表达式的子集。因此,可以作为 match 属性值出现的表达式集由两个规范管理:XPath 规范本身,它定义了匹配模式是其子集的语言,以及 XSLT 规范,它定义了子集。

如果您使用的是 XSLT 1.0,则权威帐户由 XPath 1.0 给出规范和 XSLT 1.0规范。 XPath 的本质是语言的大小是无限的;不可能有一份详尽无遗的法律模式 list 。相反,合法模式集由 XSLT 和 XPath 规范中给出的上下文无关语法定义。

如果您使用的是 XSLT 2.0,则相关规范为 XPath 2.0 (第二版)和 XSLT 2.0 .同样,合法匹配模式的定义使用的语法部分在 XSLT 规范中定义,部分在 XPath 规范中定义。

您问 在 Xpath 中什么被视为“元素”? node() 包括什么?哪些语句包含属性?等等

两个版本的 XPath 都定义了如何根据 XPath 数据模型的实例评估表达式;是数据模型指定所有元素节点都是节点,但不是所有节点都是元素节点(等等)。 XPath 1.0 的数据模型更简单,通常更容易理解,但它的定义相当不正式,并且有一些读者认为存在问题的差距和矛盾;它在 section 5 of the XPath 1.0 specification 中定义. XPath 2.0 数据模型不仅被 XPath 和 XSLT 使用,也被 XQuery 使用;它在名为 unsurprisingly 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本身的系统介绍。

关于xslt - XPath 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18861323/

相关文章:

xml - XSLT - 多次替换字符串

javascript - 使用 XPath 获取具有以特定字符串开头的属性名称的元素列表

xslt - WiX:在卸载或升级时保留 Heat 收集的文件

java - 为什么 junit 提示缺少 xsl 文件?

xml - Xpath:简单条件检查并在 Xpath 表达式中赋值

sql - 如何在标签中生成带有非法字符的xml

java - 如何获取设计在div文本下方的<b>标签的xpath

xslt 1.0,字符串长度函数

javascript - 组件返回失败代码: 0x80600011 [nsIXSLTProcessorObsolete.transformDocument]

c# - 根据子节点对整个 xdocument 进行排序