You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于同级元素属性匹配移除XML节点的XSLT技术求助

修正后的XSLT代码

核心思路是用**键(key)**快速匹配阀门的OBJ_ID,精准过滤掉关联到阀门的文本标签节点:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- 定义键:用Absperrorgan的OBJ_ID作为索引,提升匹配效率 -->
    <xsl:key name="valveIds" match="Absperrorgan" use="@OBJ_ID"/>

    <!-- 标识模板:默认复制所有节点、属性和文本内容 -->
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <!-- 匹配并过滤目标Leitungsknoten_Text节点 -->
    <xsl:template match="Leitungsknoten_Text[key('valveIds', LeitungsknotenRef/@REF)]">
        <!-- 空模板:满足匹配条件时不输出该节点 -->
    </xsl:template>
</xsl:stylesheet>

关键逻辑说明

  • <xsl:key>:提前将所有Absperrorgan节点的OBJ_ID存入索引,避免每次过滤都遍历全部阀门节点,大幅提升处理速度。
  • 过滤模板:当Leitungsknoten_Text的LeitungsknotenRef/@REF能通过索引找到对应的阀门时,该模板生效,直接跳过该文本标签节点的输出。
  • 标识模板确保其他所有节点(包括未关联阀门的Leitungsknoten_Text)都被原样保留复制。

内容的提问来源于stack exchange,提问作者Pierre de la Verre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 15:22:01