XSLT:选择与其他示例不同但略有不同的

2024-05-19

我有以下 XML:

<a>
    <b>
        <d>D1 content (can include child nodes)</d>
    </b>
    <b>
        <c>C1 content (can include child nodes)</c>
    </b>
    <b>
        <e>E1 content (can include child nodes)</e>
    </b>
    <b>
        <c>C2 content (can include child nodes)</c>
    </b>
</a>

使用 XSLT 1.0,我需要简单地生成:“cde”;即 /a/b/ 的直接子节点名称的不同列表,按节点名称排序。每个 b 恰好有一个任意名称的子代。

我可以生成“ccde”:

<xsl:for-each select="/a/b/*">
    <xsl:sort select="name(.)"/>
    <xsl:value-of select="name(.)" />
</xsl:for-each>

我尝试过使用通常的 previous-sibling:: 比较,但由于每个 b 只有一个孩子,所以前一个兄弟总是什么都没有。


首先将此关键元素添加到 XSL 的顶部:-

<xsl:key name="tagNames" match="/a/b/*" use="name()" /> 

现在你的 for every 循环可以如下所示:-

<xsl:template match="/*">
    <xsl:for-each select="/a/b/*[count(. | key('tagNames', name())[1]) = 1]">
        <xsl:sort select="name()" />
        <xsl:value-of select="name()" />
    </xsl:for-each>
</xsl:template>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSLT:选择与其他示例不同但略有不同的 的相关文章

随机推荐

  • Beautifulsoup findAll 是如何工作的

    我注意到一些奇怪的行为findAll的方法 gt gt gt htmls p class slytherin p p class gryffindor p gt gt gt soup BeautifulSoup htmls html par
  • Jersey 对空列表的响应为 null 而不是 {}

    我有一个使用 Jersey 的 JAX RS REST 服务 我使用 JAXB 进行 JSON 编组 即 XmlRootElement 其中一个方法返回使用 JPA 持久化的对象列表 当此列表包含条目时 它会按我的预期工作 例子 andro
  • 无法在 iOS 企业应用程序中连接到 example.com

    我面临着一个严重的问题 我正在尝试使企业应用程序上线 通过使用 BetaBuilder 我按照以下步骤操作 myApp ipa manifest plist index html 清单 plist
  • 如何提高包含大量小图像的 UCollectionView 的性能?

    在我的 iOS 应用程序中我有UICollectionView显示大约 1200 个小 35x35 点 图像 图像存储在应用程序包中 我正确地重用了UICollectionViewCell但仍然存在性能问题 具体取决于我处理图像加载的方式
  • numpy NPV 和 Excel NPV 有区别吗?

    我的 Excel 中有一行包含 11 个值 TotalSavings 0 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 贴现率为 0 08 我在 Excel 中使用 计算 NPVNPV
  • Django - 从缓存的查询中填充模型实例相关字段

    情况相同Django prefetch children 相关的children https stackoverflow com questions 55201573 django prefetch related children of
  • 执行 Boyer-Moore 模式匹配时是否必须考虑编码?

    我即将实现 Boyer Moore 模式匹配算法的变体 具体来说是星期日算法 我问自己 我的字母表大小是多少 它是否取决于编码 可能的字符数 或者我可以假设我的字母表由 256 个符号组成 一个字节可以表示的符号数 在许多其他情况下 将字符
  • ANTLR4 词法分析器无法解决语法顺序中的歧义

    使用 ANTLR 4 2 我尝试对此测试数据进行非常简单的解析 RRV0 ABC 使用最小语法 grammar Tiny thing RRV N HASH ID RRV RRV N 0 9 HASH ID a zA Z0 9 WS t r
  • Python Selenium 找不到网页上的任何元素

    我想用硒自动执行一个简单的任务 登录本网站 https www lernsax de https www lernsax de 我试图通过 xpath 找到该元素 但这根本不起作用 我得到了NoSuchElementException 我正
  • 模块化算术和 NTT(有限域 DFT)优化

    我想使用 NTT 进行快速平方 参见快速大数平方计算 https stackoverflow com q 18465326 2521214 但即使对于非常大的数字 结果也很慢 超过 12000 位 所以我的问题是 有没有办法优化我的 NTT
  • 从 Azure 事件中心获取事件后,我是否应该将其放入队列中?

    我目前正在开发一个托管在 Azure 上 使用 Azure 事件中心的应用程序 基本上 我从 Web API 向事件中心发送消息 或者应该说事件 并且我有两个侦听器 用于实时分析的流分析任务 标准辅助角色 根据接收到的事件计算一些内容 然后
  • Bootstrap 5 是否删除了行之间的间距?

    我开始使用 bootstrap 5 并注意到行之间没有空格 我们是否必须明确使用spacing https getbootstrap com docs 5 0 utilities spacing 实用程序喜欢mb 3 or mb 2等等试图
  • java定时器任务调度

    通过阅读 Stack Overflow 我发现很多人不建议使用 Timer Task 嗯 但我已经实现了这个 我有这个代码 detectionHandlerTimer schedule myTimerTask 60 1000 60 1000
  • Airflow:网络服务器未找到新的 DAG

    在 Airflow 中 我应该如何处理错误 此 DAG 在网络服务器 DagBag 对象中不可用 它显示在此列表中 因为调度程序将其在元数据数据库中标记为活动状态 我已将新的 DAG 复制到 Airflow 服务器 并尝试过 取消暂停并刷新
  • 如何在jquery中每4秒添加和删除一个类

    由于某种原因 这并不是每 4 秒在具有 post 类的元素上添加和删除一个新类 jquery 正确加载 就像这样 chrome 显示代码没有错误 document ready function post addClass display d
  • 由于 Chrome 修订,Firebase puppeteer PDF 功能超时

    我有一个 Firebase 函数来创建 PDF 文件 最近 由于 Chrome 修订版 而超时 我既不明白错误消息 也不明白出了什么问题 当我在 MacOS 下将其本地部署时 该功能有效 TimeoutError Timed out aft
  • 如何将 getTime() 转换为 'YYYY-MM-DD HH24:MI:SS' [重复]

    这个问题在这里已经有答案了 我的应用程序中有以下代码 System out println rec getDateTrami getTime 我需要转换以下格式 我想它们是秒 43782000 29382000 29382000 到一个格式
  • sapply - 保留列名称

    我试图总结数据集中许多不同列 变量 的平均值 标准差等 我已经编写了自己的汇总函数 以准确返回我需要和正在使用的内容sapply立即将此函数应用于所有变量 它工作正常 但是返回的数据帧没有列名 我似乎甚至无法使用列号引用重命名它们 也就是说
  • LESS CSS 语法对现代化很有用

    通常我使用现代化 http modernizr com 了解浏览器的功能 同时 我用LESS CSS http lesscss org 使我的CSS更具可读性和可维护性 使用 LESS 嵌套规则的常见样式如下所示 header color
  • XSLT:选择与其他示例不同但略有不同的

    我有以下 XML a b b a