Changeset 646 for ccr/trunk/p/C0CIN.m


Ignore:
Timestamp:
Dec 8, 2009, 5:29:27 PM (14 years ago)
Author:
George Lilly
Message:

improved xpath handling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ccr/trunk/p/C0CIN.m

    r598 r646  
    111111 S ZI=""
    112112 F  S ZI=$O(C0CXP(ZI)) Q:ZI=""  D  ; FOR EACH XPATH
    113  . D DEMUX("ZJ",ZI) ;
     113 . D DEMUX^C0CMXP("ZJ",ZI) ;
    114114 . W ZJ,!
    115115 . S ZK=$P(ZJ,"^",3) ; PULL OUT THE XPATH
     
    131131 D CCRRPC^C0CCCR(.ZT,C0CDFN,"LABLIMIT:T-1000")
    132132 M @AOUT=ZT
    133  Q
    134  ;
    135 DEMUX(OUTX,INX) ;PARSES XPATH PASSED BY VALUE IN INX TO REMOVE [x] MULTIPLES
    136  ; RETURNS OUTX: MULTIPLE^SUBMULTIPLE^XPATH
    137  N ZX,ZY,ZZ,ZZ1,ZMULT,ZSUB
    138  S (ZMULT,ZSUB)=""
    139  S ZX=$P(INX,"[",2)
    140  I ZX'="" D  ; THERE IS A [x] MULTIPLE
    141  . S ZY=$P(INX,"[",1) ;FIRST PART OF XPATH
    142  . S ZMULT=$P(ZX,"]",1) ; NUMBER OF THE MULTIPLE
    143  . S ZX=ZY_$P(ZX,"]",2) ; REST OF THE XPATH
    144  . I $P(ZX,"[",2)'="" D  ; A SUB MULTIPLE EXISTS
    145  . . S ZZ=$P(ZX,"[",1) ; FIRST PART OF XPATH
    146  . . S ZX=$P(ZX,"[",2) ; DELETE THE [
    147  . . S ZSUB=$P(ZX,"]",1) ; NUMBER OF THE SUBMULTIPLE
    148  . . S ZX=ZZ_$P(ZX,"]",2) ; REST OF THE XPATH
    149  E  S ZX=INX ;NO MULTIPLE HERE
    150  S @OUTX=ZMULT_"^"_ZSUB_"^"_ZX ;RETURN MULTIPLE^SUBMULTIPLE^XPATH
    151133 Q
    152134 ;
Note: See TracChangeset for help on using the changeset viewer.