generate-id()函数在XPath中为节点生成会话内唯一标识符,用于在缺乏id属性时区分相同标签的节点实例。它在XSLT中常用于创建唯一HTML id实现锚点链接,或配合xsl:key进行基于节点身份的索引,如处理重复名称的产品节点时确保链接精准定位。该标识符仅在当前处理会话中稳定且唯一,不同会话或处理器生成的ID可能不同,因此不可持久化或跨会话使用,不能用于长期存储或预测格式,适用于临时性节点识别而非替代持久id属性。

generate-id()
id
generate-id()
id
name
<div>
<div>
generate-id()
它返回的字符串是处理器内部生成的,通常是一串看似随机的字符和数字组合,但关键在于,对于同一个节点,在同一次处理过程中,它总是返回相同的 ID。而对于不同的节点,即使它们的内容完全一样,也会生成不同的 ID。这使得我们可以在 XSLT 转换中建立节点间的引用,或者在 XPath 查询中通过这个 ID 来区分节点。
说实话,我第一次接触
generate-id()
id
id
这时候问题就来了:如果你想在 XSLT 里对某个特定的
<item>
<div>
<item>
<div>
id
generate-id()
id
这在处理那些结构复杂、缺乏明确标识的文档时,简直是救命稻草。它让我们可以基于节点的“身份”而非“内容”或“位置”来做决策,这在很多场景下都非常重要。
在 XSLT 转换中,
generate-id()
xsl:key
举个例子,假设你有一个 XML 文档,里面有产品列表,每个产品都有一个名称,但没有唯一的
id
Android 基础知识入门 pdf,介绍什么是Android、Android可以完成的功能、Android架构、Android应用程序框架、Android函数库等,从开始安装Android开始,到环境配置,到一步步编写复杂的应用程序,本书将带你了解基础但有内涵的Android入门知识。
0
<!-- 原始XML片段 -->
<products>
<product>
<name>笔记本电脑</name>
<price>8000</price>
</product>
<product>
<name>鼠标</name>
<price>100</price>
</product>
<product>
<name>笔记本电脑</name> <!-- 注意:名称重复了 -->
<price>7500</price>
</product>
</products>在 XSLT 中,你可以利用
generate-id()
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<h1>产品列表</h1>
<div class="product-details">
<xsl:apply-templates select="products/product"/>
</div>
<h2>产品索引</h2>
<ul>
<xsl:for-each select="products/product">
<li>
<a href="#id_{generate-id()}">
<xsl:value-of select="name"/>
</a>
</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="product">
<div id="id_{generate-id()}" class="product-item">
<h3><xsl:value-of select="name"/></h3>
<p>价格: <xsl:value-of select="price"/></p>
</div>
</xsl:template>
</xsl:stylesheet>这里,
id="id_{generate-id()}"product
id
href="#id_{generate-id()}"id
id
此外,
generate-id()
xsl:key
generate-id()
虽然
generate-id()
一个最大的误区就是认为它生成的 ID 是持久的或者可预测的。错!
generate-id()
generate-id()
generate-id()
我记得有一次,我想用
generate-id()
所以,记住:
generate-id()
id
以上就是XPath的generate-id()函数有什么用?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号