1

私はここで3つのことをしようとしています。私は。。をしようとしています:

1) テキストを削除/置換します。2) XML を最大 26 回コピーします。3) XML の日付を変更して、14 日ずつ 26 回増やします。

これが私が始めていることです:

<?xml version='1.0' encoding='UTF-8'?>
<BB:Report_Data xmlns:BB="urn:com.playdate.report/Bi-Weekly_Outbound">
   <BB:Report_Entry>
      <BB:projectedBalanceTotal.employeeId>1234567</BB:projectedBalanceTotal.employeeId>     <BB:projectedBalanceTotal.principalId>4573945975</BB:projectedBalanceTotal.principalId>
      <BB:All_Eligible_Time_Off_Plans_for_Worker>   <BB:projected_balance_accrual_amount_for_the_pay_period>0</BB:projected_balance_accrual_amount_for_the_pay_period>
  <BB:projectedBalanceTotal.effectiveDate>07072012</BB:projectedBalanceTotal.effectiveDate>
         <BB:projectedBalanceTotal.planCodeId>VA</BB:projectedBalanceTotal.planCodeId>
         <BB:leaveBalanceTotal.leaveDescription>VA</BB:leaveBalanceTotal.leaveDescription>
      </BB:All_Eligible_Time_Off_Plans_for_Worker>
      <BB:All_Eligible_Time_Off_Plans_for_Worker>      <BB:projected_balance_accrual_amount_for_the_pay_period>0</BB:projected_balance_accrual_amount_for_the_pay_period>   <BB:projectedBalanceTotal.effectiveDate>07072012</BB:projectedBalanceTotal.effectiveDate>
         <BB:projectedBalanceTotal.planCodeId>WR</BB:projectedBalanceTotal.planCodeId>
         <BB:leaveBalanceTotal.leaveDescription>WR</BB:leaveBalanceTotal.leaveDescription>
      </BB:All_Eligible_Time_Off_Plans_for_Worker>
      <BB:All_Eligible_Time_Off_Plans_for_Worker>
 <BB:projected_balance_accrual_amount_for_the_pay_period>3.323</BB:projected_balance_accrual_amount_for_the_pay_period>      <BB:projectedBalanceTotal.effectiveDate>07072012</BB:projectedBalanceTotal.effectiveDate>
         <BB:projectedBalanceTotal.planCodeId>SS</BB:projectedBalanceTotal.planCodeId>
         <BB:leaveBalanceTotal.leaveDescription>SS</BB:leaveBalanceTotal.leaveDescription>
      </BB:All_Eligible_Time_Off_Plans_for_Worker>
   </BB:Report_Entry>
</BB:Report_Data>

これは、最終的に必要な方法です。

<BB:Report_Data xmlns:wd="urn:com.playdate.report/Bi-Weekly_Outbound">
   <leaveBalanceTotal>
      <projectedBalanceTotal.employeeId>1234567</projectedBalanceTotal.employeeId>
      <projectedBalanceTotal.principalId>4573945975</projectedBalanceTotal.principalId>
         <projected_balance_accrual_amount_for_the_pay_period>0</projected_balance_accrual_amount_for_the_pay_period>
         <projectedBalanceTotal.effectiveDate>07072012</projectedBalanceTotal.effectiveDate>
         <projectedBalanceTotal.planCodeId>VA</projectedBalanceTotal.planCodeId>
         <leaveBalanceTotal.leaveDescription>VA</leaveBalanceTotal.leaveDescription>
         <projected_balance_accrual_amount_for_the_pay_period>0</projected_balance_accrual_amount_for_the_pay_period>
         <projectedBalanceTotal.effectiveDate>07072012</projectedBalanceTotal.effectiveDate>
         <projectedBalanceTotal.planCodeId>WR</projectedBalanceTotal.planCodeId>
         <leaveBalanceTotal.leaveDescription>WR</leaveBalanceTotal.leaveDescription>
         <projected_balance_accrual_amount_for_the_pay_period>3.323</projected_balance_accrual_amount_for_the_pay_period>
         <projectedBalanceTotal.effectiveDate>07072012</projectedBalanceTotal.effectiveDate>
         <projectedBalanceTotal.planCodeId>SS</projectedBalanceTotal.planCodeId>
         <leaveBalanceTotal.leaveDescription>SS</leaveBalanceTotal.leaveDescription>
   </leaveBalanceTotal>
   <leaveBalanceTotal>
      <projectedBalanceTotal.employeeId>1234567</projectedBalanceTotal.employeeId>
      <projectedBalanceTotal.principalId>4573945975</projectedBalanceTotal.principalId>
         <projected_balance_accrual_amount_for_the_pay_period>0</projected_balance_accrual_amount_for_the_pay_period>
         <projectedBalanceTotal.effectiveDate>07212012</projectedBalanceTotal.effectiveDate>
         <projectedBalanceTotal.planCodeId>VA</projectedBalanceTotal.planCodeId>
         <leaveBalanceTotal.leaveDescription>VA</leaveBalanceTotal.leaveDescription>
         <projected_balance_accrual_amount_for_the_pay_period>0</projected_balance_accrual_amount_for_the_pay_period>
         <projectedBalanceTotal.effectiveDate>07212012</projectedBalanceTotal.effectiveDate>
         <projectedBalanceTotal.planCodeId>WR</projectedBalanceTotal.planCodeId>
         <leaveBalanceTotal.leaveDescription>WR</leaveBalanceTotal.leaveDescription>
         <projected_balance_accrual_amount_for_the_pay_period>3.323</projected_balance_accrual_amount_for_the_pay_period>
         <projectedBalanceTotal.effectiveDate>07212012</projectedBalanceTotal.effectiveDate>
         <projectedBalanceTotal.planCodeId>SS</projectedBalanceTotal.planCodeId>
         <leaveBalanceTotal.leaveDescription>SS</leaveBalanceTotal.leaveDescription>
   </leaveBalanceTotal>
   <leaveBalanceTotal>
      <projectedBalanceTotal.employeeId>1234567</projectedBalanceTotal.employeeId>
      <projectedBalanceTotal.principalId>4573945975</projectedBalanceTotal.principalId>
         <projected_balance_accrual_amount_for_the_pay_period>0</projected_balance_accrual_amount_for_the_pay_period>
         <projectedBalanceTotal.effectiveDate>08042012</projectedBalanceTotal.effectiveDate>
         <projectedBalanceTotal.planCodeId>VA</projectedBalanceTotal.planCodeId>
         <leaveBalanceTotal.leaveDescription>VA</leaveBalanceTotal.leaveDescription>
         <projected_balance_accrual_amount_for_the_pay_period>0</projected_balance_accrual_amount_for_the_pay_period>
         <projectedBalanceTotal.effectiveDate>08042012</projectedBalanceTotal.effectiveDate>
         <projectedBalanceTotal.planCodeId>WR</projectedBalanceTotal.planCodeId>
         <leaveBalanceTotal.leaveDescription>WR</leaveBalanceTotal.leaveDescription>
         <projected_balance_accrual_amount_for_the_pay_period>3.323</projected_balance_accrual_amount_for_the_pay_period>
         <projectedBalanceTotal.effectiveDate>08042012</projectedBalanceTotal.effectiveDate>
         <projectedBalanceTotal.planCodeId>SS</projectedBalanceTotal.planCodeId>
         <leaveBalanceTotal.leaveDescription>SS</leaveBalanceTotal.leaveDescription>
   </leaveBalanceTotal>
</BB:Report_Data>

.....などなど 26 に達するまで

削除/置換要件を正常に処理する xslt が既にあります。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:bb="urn:com.workday.report/CR-INT486-Kuali_Trojan_Time-Absence_Balances__University_Bi-Weekly_-Outbound" 
    exclude-result-prefixes="bb">
    <xsl:output indent="yes"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="comment()|processing-instruction()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="*">
        <xsl:element name="{local-name()}">
            <xsl:apply-templates select="node()|@*"/>
        </xsl:element>
    </xsl:template>

    <xsl:template match="bb:All_Eligible_Time_Off_Plans_for_Worker">
        <xsl:apply-templates/>
    </xsl:template>

    <xsl:template match="bb:Report_Data">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="bb:Report_Entry">
        <leaveBalanceTotal>
            <xsl:apply-templates select="node()|@*"/>
        </leaveBalanceTotal>
    </xsl:template>

</xsl:stylesheet>

上記のように、xml を 26 回コピーし、各データを 14 日ずつインクリメントするコードの上に、その変換を配置する必要があります。どんな助けでも大歓迎です!

4

2 に答える 2

0

タスクを簡素化するために、xml を生成するレポートを変更したため、これを締めくくります。ここで新しい質問を開きました: XSLT を使用した複雑な XML から XML への変換

于 2012-07-24T21:53:50.983 に答える
0

これはコメントスレッドを参照しています。使用しているエンジンがわからない場合は、このスタイルシートを実行して結果をお知らせください。

 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" > 
      <xsl:output method = "text" /> 

      <xsl:template match = "/" > 
           <xsl:text >
  Version :  </xsl:text> 
           <xsl:value-of select = "system-property('xsl:version')" /> 
           <xsl:text >
    Vendor :  </xsl:text> 
           <xsl:value-of select = "system-property('xsl:vendor')" /> 
           <xsl:text >
    URL :  </xsl:text> 
           <xsl:value-of select = "system-property('xsl:vendor-url')" /> 
      </xsl:template> 
 </xsl:stylesheet>
于 2012-07-23T16:15:11.950 に答える