PXRMEXU3 ; SLC/PKR - Reminder exchange XML utilities, #3. ;12/22/2004 ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005 ;=========================================== DESC(XMLSRC,DESC) ;Find the description in the XML source and load it ;into DESC. N DFOUND,DONE,IND,JND,SAVE,TAG,XMLLINE S (DFOUND,DONE,JND,SAVE)=0 F IND=1:1 Q:DONE D . S XMLLINE=@XMLSRC@(IND,0) . I 'DFOUND S TAG=$$GETTAG(XMLLINE) . I TAG="" S DFOUND=1,TAG="" . I DFOUND,'SAVE,XMLLINE["" S SAVE=0 . I 'SAVE,XMLLINE["" S DONE=1 Q . I SAVE S JND=JND+1,DESC(1,JND,0)=XMLLINE S DESC(1,0)=U_U_U_JND Q ; ;=========================================== FROMXML(TEXT) ;If text contains any of the XML predefined entity references ;convert them to the standard characters. S TEXT=$$STRREP^PXRMUTIL(TEXT,"&","&") S TEXT=$$STRREP^PXRMUTIL(TEXT,"<","<") S TEXT=$$STRREP^PXRMUTIL(TEXT,">",">") S TEXT=$$STRREP^PXRMUTIL(TEXT,""","""") S TEXT=$$STRREP^PXRMUTIL(TEXT,"'","'") Q TEXT ; ;=========================================== GETTAG(XMLLINE) ;Return the XML tag. N END,START,VALUE S START=$F(XMLLINE,"<",1)-1 S END=$F(XMLLINE,">",START)-1 S VALUE=$E(XMLLINE,START,END) Q VALUE ; ;=========================================== GETTAGV(XMLLINE,TAG,FROMXML) ;Return the value associated with the XML tag. N END,ENDTAG,START,TAGL,VALUE S TAGL=$L(TAG) S ENDTAG="" D Q .. S JND=JND+1 .. S KEYWORD(1,JND,0)=$$GETTAGV(XMLLINE,TAG,1) . I TAG="" S DONE=1 Q S KEYWORD(1,0)=U_U_U_JND Q ; ;=========================================== TOXML(TEXT) ;If text contains any of the XML markup characters convert ;them to the predefined entity reference. S TEXT=$$STRREP^PXRMUTIL(TEXT,"&","&") S TEXT=$$STRREP^PXRMUTIL(TEXT,"<","<") S TEXT=$$STRREP^PXRMUTIL(TEXT,">",">") S TEXT=$$STRREP^PXRMUTIL(TEXT,"""",""") S TEXT=$$STRREP^PXRMUTIL(TEXT,"'","'") Q TEXT ;