复制后展平XML

埃里克C.

我需要基于能够执行的重复字段创建xml记录的副本,但是我需要将结果展平

我试图使用变量并将其复制到输出

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
    <Hire>
        <xsl:for-each select="Hire/Record">
            <xsl:variable name="var_record" select="./* 
                             [not(name()='Sweldo')]" />
            <xsl:for-each select="Sweldo">
            <xsl:variable name="var_SWELDO" select="."> 
                            </xsl:variable>
            <Record>
            <xsl:copy-of select="$var_record" />
            <xsl:copy-of select="$var_SWELDO" />
            </Record>
            </xsl:for-each>
        </xsl:for-each>
    </Hire>
   </xsl:template>
</xsl:stylesheet>

输入是

 <?xml version="1.0" encoding="UTF-8"?>
 <Hire>
 <Record>
 <XRefCode>XX</XRefCode>
 <EmployeeNumber>161</EmployeeNumber>
 <BirthDate>1985-04-09</BirthDate>
 <SocialSecurityNumber>XXXXXXX</SocialSecurityNumber>
 <FirstName>XX</FirstName>
 <LastName>XX</LastName>
 <MiddleName>D</MiddleName>
 <Sweldo>
  <sahod>ONE MILLION</sahod>
 </Sweldo>
 <Sweldo>
  <sahod>1 BILLION</sahod>
 </Sweldo>
 </Record>
 </Hire>

我得到的输出是

  <?xml version="1.0"?>
  <Hire>
  <Record>
 <XRefCode>161</XRefCode>
 <EmployeeNumber>161</EmployeeNumber>
 <BirthDate>1985-04-09</BirthDate>
 <SocialSecurityNumber>999-81-9462</SocialSecurityNumber>
 <FirstName>XXX</FirstName>
 <LastName>XXXXX</LastName>
 <MiddleName>D</MiddleName>
 <Sweldo>
  <sahod>ONE MILLION</sahod>
 </Sweldo>
 </Record>
 <Record>
 <XRefCode>161</XRefCode>
 <EmployeeNumber>161</EmployeeNumber>
 <BirthDate>1985-04-09</BirthDate>
 <SocialSecurityNumber>999-81-9462</SocialSecurityNumber>
 <FirstName>XXX</FirstName>
 <LastName>XXXX</LastName>
 <MiddleName>D</MiddleName>
 <Sweldo>
  <sahod>1 BILLION</sahod>
 </Sweldo>
 </Record>
 </Hire>

但是我需要以下格式

  <?xml version="1.0"?>
  <Hire>
  <Record>
  <XRefCode>161</XRefCode>
  <EmployeeNumber>161</EmployeeNumber>
  <BirthDate>1985-04-09</BirthDate>
  <SocialSecurityNumber>999-81-9462</SocialSecurityNumber>
  <FirstName>XXXX</FirstName>
  <LastName>XXXXXX</LastName>
  <MiddleName>D</MiddleName>
  <sahod>ONE MILLION</sahod>
  </Record>
 <Record>
 <XRefCode>161</XRefCode>
 <EmployeeNumber>161</EmployeeNumber>
 <BirthDate>1985-04-09</BirthDate>
 <SocialSecurityNumber>999-81-9462</SocialSecurityNumber>
 <FirstName>XXXX</FirstName>
 <LastName>XXXX</LastName>
 <MiddleName>D</MiddleName>
 <sahod>1 BILLION</sahod>
 </Record>
 </Hire>

有没有办法完全删除元素?

阿吉特·辛格(Ajeet Singh)

请检查并更新以下代码:-

<xsl:for-each select="Sweldo">

      **change to**

<xsl:for-each select="Sweldo/sahod">

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章