使用条件 xslt 1.0 将特定元素值替换为新字符串

Replace specific element value with new strings using conditions xslt 1.0

想用 xslt 条件中提供的条件(Assigned->assigned、Reserved->reserved 等)替换 orderLineStatus 值。它工作正常,但所有其他节点在转换后不显示

**xml:**
<updateOrderLineStatusRequest
xmlns="http://www.abc1.com/schema/integration/helo/order"
xmlns:shipping="http://abc1.com/schema/integration/helo/shipping"
xmlns:message="http://abc1.com/schema/integration/message" message:timestamp="2021-01-25T10:13:13Z">
<orderLineStatusUpdate orderNumber="Test_001" line="3">
    <orderLineStatus>Assigned</orderLineStatus>
    <statusQuantity>1</statusQuantity>
    <leadTime unit="days">
        <shipping:min>4</shipping:min>
        <shipping:max>4</shipping:max>
    </leadTime>
</orderLineStatusUpdate>
</updateOrderLineStatusRequest>

xslt 1.0:

 <?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:tst="http://www.abc1.com/schema/integration/helo/order"
xmlns:shipping="http://www.abc1.com/schema/integration/helo/shipping"
xmlns:message="http://www.abc1.com/schema/integration/message" message:timestamp="2021-01-25T10:13:13Z" >
<xsl:output method="xml" encoding="UTF-8" indent="yes" omit-xml-declaration="no"/>
    <xsl:template match="tst:orderLineStatusUpdate ">
    <updateOrderLineStatusRequest >
        <xsl:choose>
            <xsl:when test="tst:orderLineStatus='Assigned'">
                <orderLineStatus>assigned</orderLineStatus>
            </xsl:when>
            <xsl:when test="tst:orderLineStatus='Reserved'">
                <orderLineStatus>reserved</orderLineStatus>
            </xsl:when>
            <xsl:otherwise>
                <orderLineStatus>reserved1</orderLineStatus>
            </xsl:otherwise>
        </xsl:choose>
    </updateOrderLineStatusRequest >
</xsl:template>
 </xsl:stylesheet>

所需的输出也显示所有其他节点,但我当前的输出仅显示 orderLineStatus 节点

**Desired output:** 
  <updateOrderLineStatusRequest
 xmlns="http://www.abc1.com/schema/integration/helo/order"
 xmlns:shipping="http://abc1.com/schema/integration/helo/shipping"
  xmlns:message="http://abc1/schema/integration/message" message:timestamp="2021-01-25T10:13:13Z">
     <orderLineStatusUpdate orderNumber="Test_001" line="3">
      <orderLineStatus>assigned</orderLineStatus>
  <statusQuantity>1</statusQuantity>
     <leadTime unit="days">
       <shipping:min>4</shipping:min>
       <shipping:max>4</shipping:max>
   </leadTime>
  </orderLineStatusUpdate>
  </updateOrderLineStatusRequest>

 current output:
   <?xml version="1.0" encoding="UTF-8"?>
   <updateOrderLineStatusRequest xmlns:tst="http://www.abc1.com/schema/integration/helo/order" 
    xmlns:shipping="http://www.abc1.com/schema/integration/helo/shipping" 
      xmlns:message="http://www.abc1.com/schema/integration/message">
      <orderLineStatus>assigned</orderLineStatus>
    </updateOrderLineStatusRequest>

像这样(已编辑):

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:tst="http://www.abc1.com/schema/integration/helo/order"
  xmlns:shipping="http://www.abc1.com/schema/integration/helo/shipping"
  xmlns:message="http://www.abc1.com/schema/integration/message" 
  exclude-result-prefixes="shipping message tst"
  >
  <xsl:output method="xml" encoding="UTF-8" indent="yes" omit-xml-declaration="no"/>
  <xsl:template match="tst:orderLineStatusUpdate">
    <updateOrderLineStatusRequest xmlns="http://www.abc1.com/schema/integration/helo/order">
      <xsl:apply-templates select="@*|node()"/>
    </updateOrderLineStatusRequest>
  </xsl:template>
  
  <xsl:template match="tst:orderLineStatus">
    <xsl:copy>
      <xsl:choose>
        <xsl:when test=".='Assigned'">
          <xsl:text>assigned</xsl:text>
        </xsl:when>
        <xsl:when test=".='Reserved'">
          <xsl:text>reserved</xsl:text>
        </xsl:when>
        <xsl:otherwise>
          <xsl:text>reserved1</xsl:text>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:copy>
  </xsl:template>
    
  
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()" />
    </xsl:copy>

  </xsl:template>

</xsl:stylesheet>