2016-08-26 6 views
0

XML 문자열로 DB에서 하나의 열을 출력했습니다. 나는 어떤 다른 방법이 있다면 내가이 작업을 수행하는 방법을 각 노드를 통해 루프를 원하는 다음 줄에In Mirth XML 문자열을 구문 분석하는 방법

var xmlResponse=new XML(msg['xmlcontent'].toString());

를 사용하여 내가 XML을 문자열로이 변환 할 수 있어요이 XML 객체를 구문 분석 할 아래에 제안 해주십시오 mirth를 사용하는 xml 문자열입니다.

<?xml version="1.0" encoding="utf-8" ?><ORDERMESSAGE><MSH><Sending_Application>HIS</Sending_Application><Sending_Facility>555</Sending_Facility><Receiving_Application>LIS</Receiving_Application><Receiving_Facility/><Message_Date_Time>20160803122348</Message_Date_Time><Security/><Message_Type>ORM</Message_Type><Message_Control_Id/></MSH><ENV><Event_Type_Code>O01</Event_Type_Code><Recorded_DateTime>20160803122348</Recorded_DateTime></ENV><PID><Patient_Id_Ext/><Patient_Id_Int>448</Patient_Id_Int><Patient_Id_Type/><Patient_Id_Number/><Patient_Name>Test Health Check</Patient_Name><Date_Of_Birth>19810802</Date_Of_Birth><Gender_Code>F</Gender_Code><Race_code/><Address1>GUINDY</Address1><Address2/><Address3/><City>Bid</City><State>Maharashtra</State><Postal_Code/><Country_Code>India</Country_Code><Phone_Home/><Phone_Mobile>9764646545</Phone_Mobile><Phone_Business/><Primary_Language/><Marital_Status_Code>Married</Marital_Status_Code><Nationality_Code>Indian</Nationality_Code></PID><PV1><SetIDPatientVisit>574</SetIDPatientVisit><Patient_Type_Code>O</Patient_Type_Code><Ward_Code/><Admission_Type/><Preadmit_Number/><Specialty_Code/><Referring_Doctor_Code/><Referring_Doctor_Desc/><Consulting_Doctor_Code/><Consulting_Doctor_Desc/><Admitting_Doctor_Code/><Admitting_Doctor_Desc/><Patient_Class/><Visit_Number>1146</Visit_Number><Financial_Class_Code/><Admit_DateTime>20160803122003</Admit_DateTime></PV1><ORC><Order_Control>NW</Order_Control><ORC_Placer_Order_Number>544</ORC_Placer_Order_Number><ORC_Filler_Order_Number/><Placer_Group_Number/><Order_Status_Code>Paid</Order_Status_Code><Response_Flag/><ORC_Quantity_Timing>20160803122032</ORC_Quantity_Timing><Parent/><DateTime_Of_Transaction>20160803122032</DateTime_Of_Transaction><Entered_By_ID>9188</Entered_By_ID><Entered_By_Name>Kutti</Entered_By_Name><Verified_By_ID/><Verified_By_Name/><ORC_Ordering_Provider_ID>1</ORC_Ordering_Provider_ID><ORC_Ordering_Provider_Name/><Enter_Location/><Call_Back_Phone_Number/><Order_Effective_DateTime/><Order_Control_Code_Reason/><Entering_Organization/><Entering_Device/><Action_By/><Advanced_Beneficiary_Notice_Code/><Ordering_Facility_Code/><Ordering_Facility_Name/></ORC><OBR><Set_Id_OBR>1</Set_Id_OBR><OBR_Placer_Order_Number>309</OBR_Placer_Order_Number><OBR_Filler_Order_Number/><Package_Code/><Package_Description/><Test_Code/><Test_Name>ABSOLUTE BLAST COUNT</Test_Name><Priority_Code/><Priority_Desc/><Requested_DateTime>20160803122032</Requested_DateTime><Observation_DateTime/><Observation_End_DateTime/><Collection_Volume/><Collector_Identifier/><Specimen_Action_Code/><Danger_Code/><Relevant_Clinical_Info/><Specimen_Received_DateTime/><Specimen_Source_Code/><Specimen_Source_Desc/><OBR_Ordering_Provider_ID>1</OBR_Ordering_Provider_ID><OBR_Ordering_Provider_Name/><Order_Callback_Phone_Number/><Placer_Field1/><Placer_Field2/><Filler_Field1/><Filler_Field2/><Status_Change_DateTime/><Charge_To_Practice/><Diagnostic_Serv_Sect_Code/><Diagnostic_Serv_Sect_Desc/><Result_Status/><Parent_Result/><OBR_Quantity_Timing/><Unit_Code/><Unit_Desc/><Result_Copies_To/><Transportation_Mode/><Reason_For_Study/><Principal_Result_Interpreter/><Assistant_Result_Interpreter/><Technician/><Transcriptionist/><Scheduled_DateTime/><Number_Of_Sample_Containers/><Transport_Logistics_Of_Collected_Sample/><Collector_Comment/><Transport_Arrangement_Responsibility/><Transport_Arranged/><Escort_Required/><Planned_Patient_Transport_Comment/><Procedure_Code/><Procedure_Code_Modifier/><Placer_Supplemental_Service/><Filler_Supplemental_Service/><Cancel_Reason_Code/><Cancel_Reason_Desc/><FeeId>23</FeeId><FeeType>INV</FeeType><MappingId>0</MappingId></OBR></ORDERMESSAGE> 

답변

0

Mirth Connect는 Rhino를 JavaScript 엔진으로 사용합니다. XML은 E4X 또는 ECMAScript for XML을 사용하여 XML을 처리하는 코드를 작성하는 작업을 단순화합니다.

그래서 기본적으로 귀하의 질문에 두 부분으로하고있다 :

1) 데이터의 개별 필드에 액세스하거나 할당은 다음과 같이, 당신은 점 표기법을 사용할 수 있습니다 공급 :

var eventType = xmlResponse['ENV']['Event_Type_Code'].toString(); 

2) 모든 반복하는 또는 반복 노드는 "트랜스 폼 편집기의 오른쪽 상단에있는"메시지 함수 "카테고리를 선택하여 마스트 참조 기능을 확인합니다. 여기에서"세그먼트 반복 "또는"모든 세그먼트 반복 "코드 스 니펫이 표시되면 드래그 앤드 예 :

for each (seg in xmlResponse.OBR.children()) { 
    if (seg.name().toString() == "SEG") { 
     var sample_value = seg['SEG.1']['SEG.1.1'].toString(); 
    } 
} 

하지만 특별한 경우에는 내가 말할 수있는 한 반복되는 세그먼트가 없으므로 첫 번째 옵션을 선택하는 것이 좋습니다.