谁能帮忙写一个Java xml xslt转换的代码啊,功能:
xml和xslt都是已知的字符串,函数返回转换后的html字符串即可。
自己是搞C#的,需要用到一点java代码,不知道如何下手,寻求帮助,万分感谢!
/*
需要导入哪些包?
*/
public static void xmlTransform(String xmlString) {
String xslt = "";
//转换代码
return "转换后的字符串";
}
xml和xslt都是已知的字符串,函数返回转换后的html字符串即可。
自己是搞C#的,需要用到一点java代码,不知道如何下手,寻求帮助,万分感谢!
/*
需要导入哪些包?
*/
public static void xmlTransform(String xmlString) {
String xslt = "";
//转换代码
return "转换后的字符串";
}
pstNode->ucTimeCnt Y3 pstNode->ucKeepCnt Y4 pstNode->stWideStep Y5
pstNode->pstSenlist Y6 pstNode->fValveMinValue Y7
pstNode = &g_stInsideBoardInfo.stGdcInfo[ucSlotId] Y8 g_stInsideBoardInfo.stCardInfo[ucSlotId] Y9
g_stInsideBoardInfo.stCardInfo[ucSlotId - 1] J1 CCU_ERR_MPI_INVALID_PARAMS j2
pStCCUMsg->aucData j3 g_stInsideBoardInfo.stGdcInfo[ucSlotId - 1] j4
区分调节模式
VALVE_ADJUST_MODE IsNeedAdjustValve(INT32 iDeltaT,UINT8 ucDeltaTUpperLimit,
UINT8 ucDeltaTLowerLimit,UINT8 ucLimitMod){
UINT8 ucDTUpLmt = CCU_NULL_BYTE;
UINT8 ucDTLowLmt= CCU_NULL_BYTE;
TAG_VALUE_INFO;
ucDTUpLmt = (ucDeltaTUpperLimit < (255 - ucLimitMod))?(ucDeltaTUpperLimit+ucLimitMod):14;
ucDTLowLmt = (ucDeltaTLowerLimit > ucLimitMod)?(ucDeltaTLowerLimit - ucLimitMod):9;
if(iDeltaT >= (INT8)0){
if(iDeltaT > (INT8)ucDTUpLmt) /* 如果温差高于温升上限和粗调偏差门限之和,默认13+2 = 15,则向上粗调 */
{return VALVE_UP;}
else if(iDeltaT > (INT8)ucDeltaTUpperLimit) /* 如果温差高于温升上限小于温升上限和粗调偏差门限之和,默认13~15,
则向上细调 */{ return VALVE_UP_BALANCE;}
else if(iDeltaT < (INT8)ucDTLowLmt) /* 如果温差小于温升下限与粗调偏差门限之差,默认11-2 = 9,则向下粗调 */
{return VALVE_DOWN;}
else if(iDeltaT < (INT8)ucDeltaTLowerLimit) /* 如果温差大于温升下限与粗调门限之差,小于温升下限,,则向下细调 */
{return VALVE_DOWN_BALANCE;} else{ return VALVE_KEEP; /* 其余保持 */ }}else
{/* 根据讨论,入风口大于出风口时,将阀门调小,如果持续高于3度以上,会报告警,阀门全开 */
return VALVE_DOWN_BALANCE; }}
按调节模式计算控制电压值
VOID ValveStepControl(GDC_CARD_INFO *pstNode, VALVE_ADJUST_MODE enAdjustMode)
{CHECK;CHECK_PARA1_NULL(Y6);/* 累计计时加 */Y3++;switch ( enAdjustMode )
{case VALVE_DOWN : if(Y3 >= Y5.uwTime){Y3 = 0;Y4 = 0;
/* 按粗调步进调小阀门开度 */
ValveAdd(&Y6[VALVE_FAULT_NUM].fTargetValueVoltage,\
Y5.fStep, Y7);
if(Y3 >= pstNode->stThinStep.uwTime) {Y3 = 0;Y4 = 0;
/* 按细条步进调小阀门开度 */
ValveAdd(&Y6[VALVE_FAULT_NUM].fTargetValueVoltage, pstNode->stThinStep.fStep, Y7);TAG_VALUE_INFO;
} break;case VALVE_UP :if(Y3 >= Y5.uwTime){Y3 = 0; Y4 = 0;
/* 开始调节 */ValveSub(&Y6[VALVE_FAULT_NUM].fTargetValueVoltage, Y5.fStep);TAG_VALUE_INFO;}
break;case VALVE_UP_BALANCE :
if(Y3 >= pstNode->stThinStep.uwTime){Y3 = 0;Y4 = 0;/* 开始调节 */
ValveSub(&Y6[VALVE_FAULT_NUM].fTargetValueVoltage, pstNode->stThinStep.fStep);
TAG_VALUE_INFO;}break;case VALVE_KEEP :Y3 = 0; Y4++;break;default:break;}return;}
判断是否存在阀门失效告警
UINT32 IsValveFaultAlarm(UINT8 ucSlotId, FLOAT fSetValue)
{UINT8 ucFeedBack = 0;UINT32 ulRet = CCU_ERR; FLOAT fFeedBackValue = 0;
FLOAT fDelatValue = 0;UINT8 ucAlarmValue = CCU_ALARM_NORMAL;PGDC_CARD_INFO pstNode = CCU_NULL_PTR;
if ( ucSlotId >= MAX_INSIDE_CARD_NUM){ return j2; }Y8;
ulRet = ReadAD7830Value(&ucFeedBack, FEEDBACK_DA_CHAN, ucSlotId);y1;
/* 回馈电压转换,跟电路和芯片有关 */fFeedBackValue = ((FLOAT)ucFeedBack * 10)/256;
CHECK_PARA1_NULL_RN(Y6, j2);Y6[5].fDAReadBackValue = fFeedBackValue;
/* 计算回馈电压与设置电压的差值 */
fDelatValue = (fFeedBackValue > fSetValue) ? (fFeedBackValue - fSetValue):(fSetValue - fFeedBackValue);
fDelatValue = (FLOAT)(fDelatValue- 0.2*fSetValue);
/* 如果反馈电压连续10次偏离设置电压20%,报阀门失效告警 */
if ( fDelatValue > HighFloatMark ){ucAlarmValue = CCU_ALARM_NORMAL;
AlarmExistJudge(&Y6[VALVE_FAULT_NUM].ucSdrFaultCnt, &ucAlarmValue, VALVE_FAULT_FILT_CNT);
if ( (CCU_ALARM_ALARM == ucAlarmValue)&&(SENSOR_FAULT_STATE != Y6[VALVE_FAULT_NUM].ucAlarm))
{ Y6[VALVE_FAULT_NUM].ucAlarm = SENSOR_FAULT_STATE;
ReportInsideBoardAlarm;}}else{ ucAlarmValue = CCU_ALARM_ALARM;
AlarmClearJudge(&Y6[VALVE_FAULT_NUM].ucSdrFaultCnt, &ucAlarmValue);
if ( (CCU_ALARM_NORMAL == ucAlarmValue)&&(SENSOR_FAULT_STATE == Y6[VALVE_FAULT_NUM].ucAlarm))
{Y6[VALVE_FAULT_NUM].ucAlarm = NORMAL_STATE;ReportInsideBoardAlarm;} }return CCU_OK;}
VOID PollInsideBoard( VOID )
{
UINT32 i = 0;
/* 如果在加载CPLD或者CPLD失效,会上报CCU硬件故障,由此引起的其它告警需屏蔽 */
if ( (CCU_TRUE == IsCpldUpdating())
||(CCU_TRUE == g_ucCpldTestFail)
||(CCU_TRUE == g_ucHardWareFlg))
{
return;
}
for ( i = 0 ; i < MAX_INSIDE_CARD_NUM ; i++ )
{
if ( CCU_TRUE == Y2.ucIsOnLine)
{
ProcInsideBoardByType((INSIDE_BOARD_TYPE)Y2.ucBoardType, (UINT8)i);
}
else
{
continue;
}
} return;
}
定时处理子卡管理消息
VOID ProcInsideCardTimeMsg( PCCU_MSG_FRAME pStCCUMsg )
{
UINT8 ucCmd = CCU_NULL_BYTE; CHECK_PARA1_NULL(pStCCUMsg);
ucCmd = pStCCUMsg->ucCmd;
switch(ucCmd)
{
case MAN_1S_TYPE: /* 定时1S扫描处理子卡 */
PollInsideBoard();
break;
default:
break;
} return;
}