Xslt 在应用模板中保留不匹配的节点

Xslt 在应用模板中保留不匹配的节点,xslt,xslt-1.0,Xslt,Xslt 1.0,我要求仅当另一个字段(存款值)不为空时,才根据字段(帐户)对记录进行排序。我能够做到这一点,但我当前的xslt正在删除应用模板中不匹配的节点。在这种情况下,我们怎么能一直保持其他一切不变呢。对于某些员工来说,要排序的记录(DirectDeposit)可能并不总是存在 我已经在分类方面取得了进展 XSLT: 实际结果:(员工标题已消失) 直接存款 2018-07-13T19:46:58.000Z 1985-04-09 2. 200 直接存款 2018-07-13T19:46:58.000Z

我要求仅当另一个字段(存款值)不为空时,才根据字段(帐户)对记录进行排序。我能够做到这一点,但我当前的xslt正在删除应用模板中不匹配的节点。在这种情况下,我们怎么能一直保持其他一切不变呢。对于某些员工来说,要排序的记录(DirectDeposit)可能并不总是存在

我已经在分类方面取得了进展

XSLT:


实际结果:(员工标题已消失)


直接存款
2018-07-13T19:46:58.000Z
1985-04-09
2.
200
直接存款
2018-07-13T19:46:58.000Z
1985-04-09
3.
100
直接存款
2018-07-13T19:46:58.000Z
1985-04-09
1.
预期:

    <?xml version="1.0"?>
    <Hire>
  <Employee>
    <Header>
        <action/>
        <created_by/>
        <created_on_timestamp>2018-07- 
                 13T19:46:58.000Z</created_on_timestamp>
        <date_of_birth>1985-04-09</date_of_birth>
        <AdditionalElements/>
         </Header>
        <DirectDeposit>
        <action>DirectDeposit</action>
        <created_by/>
        <created_on_timestamp>2018-07- 
                   13T19:46:58.000Z</created_on_timestamp>
        <date_of_birth>1985-04-09</date_of_birth>
        <account>2</account>
        <depositvalue>200</depositvalue>
       </DirectDeposit>
         <DirectDeposit>
        <action>DirectDeposit</action>
        <created_by/>
        <created_on_timestamp>2018-07-13T19:46:58.000Z</created_on_timestamp>
        <date_of_birth>1985-04-09</date_of_birth>
        <account>3</account>
        <depositvalue>100</depositvalue>
    </DirectDeposit>
    <DirectDeposit>
        <action>DirectDeposit</action>
        <created_by/>
        <created_on_timestamp>2018-07-13T19:46:58.000Z</created_on_timestamp>
        <date_of_birth>1985-04-09</date_of_birth>
        <account>1</account>
        <depositvalue/>
    </DirectDeposit>
</Employee>
<Employee/>

2018-07- 
13T19:46:58.000Z
1985-04-09
直接存款
2018-07- 
13T19:46:58.000Z
1985-04-09
2.
200
直接存款
2018-07-13T19:46:58.000Z
1985-04-09
3.
100
直接存款
2018-07-13T19:46:58.000Z
1985-04-09
1.

添加


到您的
match=“Employee”
模板。如果不处理Header元素,它将不会被处理,因此将从输出中消失。

如果需要Header,则在其他2个
xsl:apply templates
说明之前添加
。这是一个猜测,因为我没有看到你的输入。
<?xml version="1.0"?>
 <Hire>
 <Employee>
 <DirectDeposit>
  <action>DirectDeposit</action>
  <created_by/>
  <created_on_timestamp>2018-07-13T19:46:58.000Z</created_on_timestamp>
  <date_of_birth>1985-04-09</date_of_birth>
  <account>2</account>
  <depositvalue>200</depositvalue>
 </DirectDeposit>
 <DirectDeposit>
  <action>DirectDeposit</action>
  <created_by/>
  <created_on_timestamp>2018-07-13T19:46:58.000Z</created_on_timestamp>
  <date_of_birth>1985-04-09</date_of_birth>
  <account>3</account>
  <depositvalue>100</depositvalue>
 </DirectDeposit>
 <DirectDeposit>
  <action>DirectDeposit</action>
  <created_by/>
  <created_on_timestamp>2018-07-13T19:46:58.000Z</created_on_timestamp>
  <date_of_birth>1985-04-09</date_of_birth>
  <account>1</account>
  <depositvalue/>
 </DirectDeposit>
 </Employee>
  <Employee/>
  </Hire>
    <?xml version="1.0"?>
    <Hire>
  <Employee>
    <Header>
        <action/>
        <created_by/>
        <created_on_timestamp>2018-07- 
                 13T19:46:58.000Z</created_on_timestamp>
        <date_of_birth>1985-04-09</date_of_birth>
        <AdditionalElements/>
         </Header>
        <DirectDeposit>
        <action>DirectDeposit</action>
        <created_by/>
        <created_on_timestamp>2018-07- 
                   13T19:46:58.000Z</created_on_timestamp>
        <date_of_birth>1985-04-09</date_of_birth>
        <account>2</account>
        <depositvalue>200</depositvalue>
       </DirectDeposit>
         <DirectDeposit>
        <action>DirectDeposit</action>
        <created_by/>
        <created_on_timestamp>2018-07-13T19:46:58.000Z</created_on_timestamp>
        <date_of_birth>1985-04-09</date_of_birth>
        <account>3</account>
        <depositvalue>100</depositvalue>
    </DirectDeposit>
    <DirectDeposit>
        <action>DirectDeposit</action>
        <created_by/>
        <created_on_timestamp>2018-07-13T19:46:58.000Z</created_on_timestamp>
        <date_of_birth>1985-04-09</date_of_birth>
        <account>1</account>
        <depositvalue/>
    </DirectDeposit>
</Employee>
<Employee/>