我有以下輸入xml。我需要執行幾個步驟來獲得所需的輸出。我不熟悉XSLT。我可以做基本的模板。我被困在以下任務如何使用XSLT查找第二個子節點並更改節點名稱
我需要將<WorkCompPolicyQuoteInqRq>
更改爲<WorkCompPolicyQuoteInqRs>
。這裏的問題是標籤的名稱可能會有所不同,它可能是<XXXYRq> <AbCRq>
但位置保持不變(InsuranceSvcRq
的第二個孩子),最後兩個字符總是「Rq」。 我不知道如何做到這一點。我將不勝感激任何指導。謝謝!
輸入XML
<DATA>
<SignonRq>
</SignonRq>
<InsuranceSvcRq>
<RqUID>6D76AF16-56C0-4108-BD82-83985EDD6888</RqUID>
<WorkCompPolicyQuoteInqRq>
<RqUID>8CB1B8A1-83B2-4D94-8A9A-D5E801DD2E32</RqUID>
<TransactionRequestDt>2012-12-26T12:14:18</TransactionRequestDt>
<TransactionEffectiveDt>2012-10-01</TransactionEffectiveDt>
<CurCd>USD</CurCd>
</WorkCompPolicyQuoteInqRq>
</InsuranceSvcRq>
</DATA>
所需的輸出
<DATA>
<Status>
<StatusCd>0</StatusCd>
<StatusDesc>ACORD Success</StatusDesc>
</Status>
<InsuranceSvcRs>
<RqUID>6D76AF16-56C0-4108-BD82-83985EDD6888</RqUID>
<WorkCompPolicyQuoteInqRs>
<RqUID>8CB1B8A1-83B2-4D94-8A9A-D5E801DD2E32</RqUID>
<TransactionRequestDt>2012-12-26T12:14:18</TransactionRequestDt>
<TransactionEffectiveDt>2012-10-01</TransactionEffectiveDt>
<CurCd>USD</CurCd>
<MsgStatus>
<MsgStatusCd>Error</MsgStatusCd>
<MsgErrorCd>DataError</MsgErrorCd>
<MsgStatusDesc>Request Failed</MsgStatusDesc>
<ExtendedStatus>
<ExtendedStatusCd>DataInvalid</ExtendedStatusCd>
<ExtendedStatusDesc>Message</ExtendedStatusDesc>
</ExtendedStatus>
</MsgStatus>
</WorkCompPolicyQuoteInqRs>
</InsuranceSvcRs>
</DATA>
如果所討論元素的名稱不同,那麼輸出新元素名稱的規則是什麼? – 2014-09-18 17:44:55
規則是用s替換字符串中的最後一個字符q。例如,在上面的示例中,將被寫爲 –
Sganesan
2014-09-18 17:55:07