Changeset 646 for ccr/trunk/p/C0CMXP.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/C0CMXP.m

    r640 r646  
    8787 Q
    8888 ;
     89DEMUX(OUTX,INX) ;PARSES XPATH PASSED BY VALUE IN INX TO REMOVE [x] MULTIPLES
     90 ; RETURNS OUTX: MULTIPLE^SUBMULTIPLE^XPATH
     91 N ZX,ZY,ZZ,ZZ1,ZMULT,ZSUB
     92 S (ZMULT,ZSUB)=""
     93 S ZX=$P(INX,"[",2)
     94 I ZX'="" D  ; THERE IS A [x] MULTIPLE
     95 . S ZY=$P(INX,"[",1) ;FIRST PART OF XPATH
     96 . S ZMULT=$P(ZX,"]",1) ; NUMBER OF THE MULTIPLE
     97 . S ZX=ZY_$P(ZX,"]",2) ; REST OF THE XPATH
     98 . I $P(ZX,"[",2)'="" D  ; A SUB MULTIPLE EXISTS
     99 . . S ZZ=$P(ZX,"[",1) ; FIRST PART OF XPATH
     100 . . S ZX=$P(ZX,"[",2) ; DELETE THE [
     101 . . S ZSUB=$P(ZX,"]",1) ; NUMBER OF THE SUBMULTIPLE
     102 . . S ZX=ZZ_$P(ZX,"]",2) ; REST OF THE XPATH
     103 E  S ZX=INX ;NO MULTIPLE HERE
     104 S @OUTX=ZMULT_"^"_ZSUB_"^"_ZX ;RETURN MULTIPLE^SUBMULTIPLE^XPATH
     105 Q
     106 ;
    89107UPDIE   ; INTERNAL ROUTINE TO CALL UPDATE^DIE AND CHECK FOR ERRORS
    90108 K ZERR
Note: See TracChangeset for help on using the changeset viewer.