将通用XML转换为CSV(使用XSLT)

时间:2019-02-04 13:54:43

标签: c# xml csv xslt

我需要通过XSLT将xml转换为csv; 我不知道xml中的哪些标签,而且它包含重复的标签。 xml的示例:

<?xml version="1.0" encoding="utf-8"?>
<AP     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
 xmlns:pd="http://www.ascentn.com/bpm/XMLSchema">
  <processFields>
    <smsText />
    <PID>810C005056A14F7F119914B53474BB65</PID>
    <ComplexProximity>
      <lasttNameTxt>!!!!!!!</lasttNameTxt>
    </ComplexProximity>
  </processFields>

  <formFields>
    <txtTz>777</txtTz>
    <SubFormProximity1_SubForm>

      <SubFormProximity1>
        <SaleryAvg>10000</SaleryAvg>
      </SubFormProximity1>

      <SubFormProximity1>
        <SaleryAvg>0</SaleryAvg>
      </SubFormProximity1>

      <SubFormProximity1>
        <SaleryAvg>777</SaleryAvg>
        <SubFormIncomeSources_SubForm>
          <SubFormIncomeSources>
            <ddl_Sfs_fWorkStatus>aa</ddl_Sfs_fWorkStatus>
          </SubFormIncomeSources>

          <SubFormIncomeSources>
            <ddl_Sfs_fWorkStatus>bb</ddl_Sfs_fWorkStatus>
          </SubFormIncomeSources>
        </SubFormIncomeSources_SubForm>
      </SubFormProximity1>
    </SubFormProximity1_SubForm>
  </formFields>
</AP>

此xml转换为:

    smsText,PID,lasttNameTxt,txtTz,SaleryAvg,ddl_Sfs_fWorkStatus
     ,810C005056A14F7F119914B53474BB65,!!!!!!!,777,10000
     ,810C005056A14F7F119914B53474BB65,!!!!!!!,777,0
     ,810C005056A14F7F119914B53474BB65,!!!!!!!,777,77,aa
     ,810C005056A14F7F119914B53474BB65,!!!!!!!,777,77,bb

有没有办法用xslt做到这一点? (请注意,它必须是通用的,且没有通过硬编码写入标签的名称)

我需要将xml导出到excel(csv),所以它看起来像excel导出选项。列名是标签名-仅包含子元素的标签。这些行来自标签值,如果存在重复的标签和不同的值,则需要使用不同的值来复制行。如果内部标签(没有子标签)为空-单元格也将为空

谢谢

0 个答案:

没有答案