私はxsltを初めて使用しており、xml変換にはxslt 1.0を使用しています。 私はソースxmlを持っていますが、要素PID11が繰り返されています。 PID11には子要素XAD.7があります。 XAD.7の値は、「Home」、「Business」、「Alternate」などがありますが、それぞれ1回になります。 PID11は複数回繰り返すことができます.XAD.7を「ホーム」として最初にチェックします.XAD.7を「ホーム」として、子ノードをターゲットにコピーします.XAD.7の場合、「ホーム」はXAD.7が「ビジネス」であることを確認し、「ビジネス」が見つかった場合は子ノードなどをコピーします。私はそれが文字制限を超えているとして、ここに私のXSLTを置くことができないのですforeach xsltの条件
<?xml version = '1.0' encoding = 'UTF-8'?>
<top:AdtLevel1SegmentsCollection xmlns:bpmn="http://schemas.oracle.com/bpm/xpath" xmlns:top="http://xmlns.oracle.com/pcbpel/adapter/db/top/Insert_HL7_ADT_A01_Staging">
<top:AdtLevel1Segments>
<top:msh10MsgCntrlId>Q10139555T12193933X316716</top:msh10MsgCntrlId>
<top:msh4Sendfac>HUMC_EGATE</top:msh4Sendfac>
<top:msh7MsgTsDt/>
<top:pid3InpidCx1Id>100004465</top:pid3InpidCx1Id>
<top:pid18Cx1Paccntno/>
<top:pv119_Cx1Visitnumb/>
<top:msh1FieldSeparator>|</top:msh1FieldSeparator>
<top:msh2EncodingCharacters>^~\&</top:msh2EncodingCharacters>
<top:msh3Sendapp>
CERNER
</top:msh3Sendapp>
<top:msh5Recapp>
AFFINITY
</top:msh5Recapp>
<top:msh6Recfac>
HAR
</top:msh6Recfac>
<top:msh8Security/>
<top:msh9CmMsg1Msgid/>
<top:msh9CmMsg2Trigevent/>
<top:msh11Pt1ProcId>P</top:msh11Pt1ProcId>
<top:msh11Pt2ProcMode/>
<top:msh12VersionId>2.3</top:msh12VersionId>
<top:msh13SeqNumber/>
<top:msh14ContPointer/>
<top:msh15AcceptAckType/>
<top:evn1EventTypecode/>
<top:evn2Ts1RecordedDatetime/>
<top:evn2Ts2RecordedDatetime/>
<top:evn5Cn1Operidcd/>
<top:evn5Cn2Namelast/>
<top:evn5Cn3Namefirst/>
<top:evn5Cn4Namemidd/>
<top:evn5Cn5Namesuff/>
<top:evn5Cn6Namepref/>
<top:evn6Ts1EventOccured/>
<top:evn6Ts2EventOccured/>
<top:drg1_Ce1DiagReltdIdntfr/>
<top:drg1_Ce2DiagTxt/>
<top:drg2_Ts1DiagAssignDt/>
<top:drg2_Ts2DiagAssignTm/>
<top:drg3_DiagApprvlInd/>
<top:drg4_DiagGrpReviewCd/>
<top:drg5_Ce1OutReimTypIdnt/>
<top:ub11_SetId/>
<top:ub12_BloodDeductible/>
<top:ub21_SetId/>
<top:ub22_CoInsDays/>
<top:ub23_ConditionCd/>
<top:z011_Intpatientid/>
<top:z012_Medicaidid/>
<top:z013_Gendercode/>
<top:z014_Dob/>
<top:z101_Patientaccno/>
<top:z102_Lstspuncldaccno/>
<top:z103_Pcatcode/>
<top:insertDt>2016-11-04T21:10:54.966+05:30</top:insertDt>
<top:messageType>ADT_A01Hist</top:messageType>
<top:processedFlag>H</top:processedFlag>
<top:adtLevel1Pid>
<top:pid1SetidPatientid>1</top:pid1SetidPatientid>
<top:pid2ExpidCx1Id/>
<top:pid4AlpidCx1Id/>
<top:pid5Xpn1PnameLast/>
<top:pid5Xpn2PnameFirst/>
<top:pid5Xpn3PnameMidd/>
<top:pid6Xpn1PmothmnameLast/>
<top:pid6Xpn2PmothmnameFirst/>
<top:pid6Xpn3PmothmnameMidd/>
<top:pid7Ts1Pdateofbirth>19470409</top:pid7Ts1Pdateofbirth>
<top:pid7Ts2Ptimeofbirth/>
<top:pid8Psexcode>F</top:pid8Psexcode>
<top:pid9Xpn1PalianameLast/>
<top:pid9Xpn2PalianameFirst/>
<top:pid9Xpn3PalianameMidd/>
<top:pid11Xad1Straddr1>531 Home 11TH ST</top:pid11Xad1Straddr1>
<top:pid12Countycd/>
<top:pid13Xtn1Pathomephnnn>(562)495-1306</top:pid13Xtn1Pathomephnnn>
<top:pid13Xtn2Telecomusecd/>
<top:pid14Xtn1Patbusphnnn>5627194222</top:pid14Xtn1Patbusphnnn>
<top:pid14Xtn2Telecomusecd/>
<top:pid15Ce1Primlangcd>SP</top:pid15Ce1Primlangcd>
<top:pid16Maritalcode/>
<top:pid17Religion/>
<top:pid19Ssn/>
<top:pid20Dln1Dln/>
<top:pid20Dln2Issuedt/>
<top:pid20Dln3Expdt/>
<top:pid21Cx1Mothid/>
<top:pid22Pethcd/>
<top:pid23Pbirthplace/>
<top:pid24Pmultbirthind/>
<top:pd11_LivDep/>
<top:pd12_LivArr/>
<top:pd13_Xon1Orgname/>
<top:pd13_Xon2Nametype/>
<top:pd14_Xcn1Id/>
<top:pd14_Xcn2Namelast/>
<top:pd14_Xcn3Namefirst/>
<top:pd14_Xcn4Namemidd/>
<top:pd15_Stndcd/>
<top:pd16_Handicap/>
<top:pd17_LivingWillCd/>
<top:pd18_OrganDonorCd/>
<top:pd19_Separatbill/>
<top:pd110_Cx1Duppat/>
<top:pd111_Ce1Pubindcd/>
<top:pd112_Protind/>
<top:zpi1Setid/>
<top:zpi2Ptempaddr/>
<top:zpi3Presdt/>
<top:zpi4Pbrthplace/>
<top:zei1Setid/>
<top:zei2Emplsttscd/>
<top:zei3EmplnameFt/>
<top:insertDt>2016-11-04T21:10:54.967+05:30</top:insertDt>
<top:messageType>ADT_A01Hist</top:messageType>
<top:processedFlag>H</top:processedFlag>
<top:adtLevel2PidRaceCollection>
<top:AdtLevel2PidRace>
<top:pid10PatientRace>1</top:pid10PatientRace>
<top:insertDt>2016-11-04T21:10:54.967+05:30</top:insertDt>
<top:messageType>ADT_A01Hist</top:messageType>
<top:processedFlag>H</top:processedFlag>
</top:AdtLevel2PidRace>
<top:AdtLevel2PidRace>
<top:pid10PatientRace>""</top:pid10PatientRace>
<top:insertDt>2016-11-04T21:10:54.967+05:30</top:insertDt>
<top:messageType>ADT_A01Hist</top:messageType>
<top:processedFlag>H</top:processedFlag>
</top:AdtLevel2PidRace>
</top:adtLevel2PidRaceCollection>
</top:adtLevel1Pid>
<top:adtLevel1Pv1>
<top:pv11_Setid>1</top:pv11_Setid>
<top:pv12_Pclass>I</top:pv12_Pclass>
<top:pv13_Pl1AssgplocPoc>5U</top:pv13_Pl1AssgplocPoc>
<top:pv13_Pl2AssgplocRoom>00</top:pv13_Pl2AssgplocRoom>
<top:pv13_Pl3AssgplocBed>7</top:pv13_Pl3AssgplocBed>
<top:pv13_Pl4AssgplocFac>
HAR
</top:pv13_Pl4AssgplocFac>
<top:pv14_Admtype>1</top:pv14_Admtype>
<top:pv16_Pl1PplocPoc/>
<top:pv16_Pl2PplocRoom/>
<top:pv16_Pl3PplocBed/>
<top:pv16_Pl4PplocFac/>
<top:pv17_Xcn1Attenddoctid/>
<top:pv17_Xcn2Namelast/>
<top:pv17_Xcn3Namefirst/>
<top:pv17_Xcn4Namemidd/>
<top:pv19_Xcn1Consdoctid/>
<top:pv19_Xcn2Namelast/>
<top:pv19_Xcn3Namefirst/>
<top:pv19_Xcn4Namemidd/>
<top:pv110_HospitalService/>
<top:pv114_Admitsrccd/>
<top:pv117_Xcn1Admitdoctid/>
<top:pv117_Xcn2Namelast/>
<top:pv117_Xcn3Namefirst/>
<top:pv117_Xcn4Namemidd/>
<top:pv118_Ptype/>
<top:pv120_Fc1Finclass/>
<top:pv120_Fc2Effdt/>
<top:pv136_Dischargaccntdisp/>
<top:pv141_Accntstatus/>
<top:pv144_AdmtdtTs1/>
<top:pv144_AdmtdtTs2/>
<top:pv145_DischdtTs1/>
<top:pv145_DischdtTs2/>
<top:pv21_Pl1PrplocPoc/>
<top:pv21_Pl2PrplocRoom/>
<top:pv21_Pl3PrplocBed/>
<top:pv21_Pl4PrplocFac/>
<top:pv21_Pl5PrplocBedsta/>
<top:pv21_Pl6PrplocLoctype/>
<top:pv21_Pl7PrplocBuild/>
<top:pv21_Pl8PrplocFloor/>
<top:pv21_Pl9PrplocLocdesc/>
<top:pv23_Ce1Admitreasoncd/>
<top:pv24_Ce1Trreasoncd/>
<top:zvi1TraumaCd/>
<top:zvi2TraumaDtTm/>
<top:zvi3LastTraumaDtTm/>
<top:zvi4ReferringComment/>
<top:zvi5ChartLocation/>
<top:insertDt>2016-11-04T21:10:54.968+05:30</top:insertDt>
<top:messageType>ADT_A01Hist</top:messageType>
<top:processedFlag>H</top:processedFlag>
</top:adtLevel1Pv1>
</top:AdtLevel1Segments>
</top:AdtLevel1SegmentsCollection>
:以下
は、ソースXML
<ADT_A01 xmlns="http://www.edifecs.com/xdata/200"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
XDataVersion="2.0" Standard="HL7" Version="2.3"
CreatedDate="2016-08-25T23:58:43" CreatedBy="XEngine_3000"
GUID="{855FB5C6-6B5A-11E6-9457-005056BC4156}">
<Internal-Properties>
<Data-Structure Name="Message">
<Lookup Name="InternatCodeAlternateID"/>
<Lookup Name="InternatCodeAlternateSystem"/>
>
</Data-Structure>
</Internal-Properties>
<MSH>
<MSH.1>|</MSH.1>
<MSH.2>^~\&</MSH.2>
</MSH>
<PID>
<PID.1>1</PID.1>
<PID.2 xsi:nil="true"/>
<PID.11>
<XAD.1>531 Business 11TH ST</XAD.1>
<XAD.2 xsi:nil="true"/>
<XAD.3 xsi:nil="true"/>
<XAD.4>CA</XAD.4>
<XAD.5 xsi:nil="true"/>
<XAD.6 xsi:nil="true"/>
<XAD.7>Business</XAD.7>
</PID.11>
<PID.11>
<XAD.1>531 Home 11TH ST</XAD.1>
<XAD.2 xsi:nil="true"/>
<XAD.3>LONG BEACH</XAD.3>
<XAD.4>CA</XAD.4>
<XAD.5>90813</XAD.5>
<XAD.6>USA</XAD.6>
<XAD.7>Home</XAD.7>
<XAD.8 xsi:nil="true"/>
<XAD.9>Los Angeles</XAD.9>
</PID.11>
<PID.12 xsi:nil="true"/>
<PID.13>
<XTN.1>(562)495-1306</XTN.1>
</PID.13>
<PID.14>
<XTN.1>5627194222</XTN.1>
</PID.14>
<PID.15>
<CE_0296.1>SP</CE_0296.1>
</PID.15>
</PID>
<PV1>
<PV1.1>1</PV1.1>
<PV1.2>I</PV1.2>
<PV1.3>
<PL.1>5U</PL.1>
<PL.2>00</PL.2>
<PL.3>7</PL.3>
<PL.4>
<HD.1>HAR</HD.1>
</PL.4>
</PV1.3>
<PV1.4>1</PV1.4>
<PV1.5 xsi:nil="true"/>
<PV1.6 xsi:nil="true"/>
</PV1>
</ADT_A01>
期待xml出力です。
私はちょうどPID11を繰り返すすべてのインスタンスを繰り返し、XAD.7がホームとして存在するかどうかをチェックしたいので、PID11の他のインスタンスを無視してXAD.7をホームにしてインスタンスをtarget.ifにコピーしてくださいPID11インスタンスXAD.7が存在しない場合はXAD.7をBusinessとして確認します。XAD.7がBusinessとして検出された場合、PID11の他のインスタンスは無視され、ビジネスとしてXAD.7を持つインスタンスをターゲット
xsltの書き込みにお役立てください。
私は短いxmlを与える必要がある場合は私に教えてください。 – user3151878
あなたはあなたが立ち往生している部分に焦点を当てるだけであなたの出力XMLを簡素化した場合に役立つかもしれません。現時点では、出力XMLにはアプリケーションに必要な(空の)多数の要素が含まれていますが、実際の問題とは関係ありません。あなたの質問を構造化するための有用なアドバイスについては、http://stackoverflow.com/help/mcveを参照してください。ありがとうございました! –