2016-11-04 8 views
0

私は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>^~\&amp;</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"/> 
     &gt; 
     </Data-Structure> 
    </Internal-Properties> 
    <MSH> 
     <MSH.1>|</MSH.1> 
     <MSH.2>^~\&amp;</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の書き込みにお役立てください。

+0

私は短いxmlを与える必要がある場合は私に教えてください。 – user3151878

+1

あなたはあなたが立ち往生している部分に焦点を当てるだけであなたの出力XMLを簡素化した場合に役立つかもしれません。現時点では、出力XMLにはアプリケーションに必要な(空の)多数の要素が含まれていますが、実際の問題とは関係ありません。あなたの質問を構造化するための有用なアドバイスについては、http://stackoverflow.com/help/mcveを参照してください。ありがとうございました! –

答えて

0

私はちょうどあなたが何をしているのかちょっと混乱していますが、あなたがしたいことがプロセス 'home'エントリーに続いて 'business'エントリーであれば、このようなことができますか? (選択が簡単に入力、文書内のすべての要素をキャプチャしない場合)

<xsl:apply-templates select="PID.11[XAD.7='Home']/> 
<xsl:apply-templates select="PID.11[XAD.7='Business']/> 

はまた、あなたは「ホーム」と「ビジネス」モードを使用することができます。

関連する問題