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

如何使用XSLT仅替换首个OrderDetail标签为baz?

只替换第一个<OrderDetail>标签的XSLT解决方案

要实现只替换第一个出现的<OrderDetail>标签,咱们只需要调整现有XSLT的匹配规则,精准定位到第一个目标节点即可,其他节点会自动保留原有结构。

修改后的XSLT代码

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                xmlns:xs="http://www.w3.org/2001/XMLSchema" 
                exclude-result-prefixes="xs" 
                version="2.0">
    <xsl:output indent="yes"/>
    
    <!-- 身份转换模板:复制所有未被特殊模板匹配的节点,保证整体结构不变 -->
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    
    <!-- 仅匹配父节点下的第一个OrderDetail,替换为baz标签 -->
    <xsl:template match="OrderDetail[1]">
        <baz>
            <xsl:apply-templates/>
        </baz>
    </xsl:template>
</xsl:stylesheet>

关键改动说明

  • 把原来匹配所有<OrderDetail>的模板,修改为匹配OrderDetail[1]——这个XPath表示当前父节点下的第一个<OrderDetail>节点,精准命中第一个目标标签。
  • 其余的<OrderDetail>节点会被默认的身份转换模板原样复制,不会被修改。

转换后的结果

<?xml version="1.0" encoding="UTF-8"?>
<Order OrderID="10613">
 <CustomerID>HILAA</CustomerID>
 <EmployeeID>4</EmployeeID>
 <OrderDate>1997-07-29T05:38:16</OrderDate>
 <RequiredDate>1997-08-26T11:38:15</RequiredDate>
 <ShippedDate>1997-08-01T12:46:12</ShippedDate>
 <ShipVia>2</ShipVia>
 <Freight>8.1100</Freight>
 <ShipName>HILARION-Abastos</ShipName>
 <ShipAddress>Carrera 22 con Ave. Carlos Soublette #8-35</ShipAddress>
 <ShipCity>San Cristóbal</ShipCity>
 <ShipRegion>Táchira</ShipRegion>
 <ShipPostalCode>5022</ShipPostalCode>
 <ShipCountry>Venezuela</ShipCountry>
 <OrderDetails>
 <baz>
 <ProductID>13</ProductID>
 <UnitPrice>6.0000</UnitPrice>
 <Quantity>8</Quantity>
 <Discount>0.1</Discount>
 </baz>
 <OrderDetail>
 <ProductID>75</ProductID>
 <UnitPrice>7.7500</UnitPrice>
 <Quantity>40</Quantity>
 <Discount>0</Discount>
 </OrderDetail>
 </OrderDetails>
</Order>

可以看到,第一个<OrderDetail>已经被替换为<baz>,第二个则保持原有标签不变,完全符合需求。

内容的提问来源于stack exchange,提问作者Nicholas Saunders

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 09:32:45