2012-11-30 3 views
2

우리는 우리의 응용 프로그램에서 낙타로 이동합니다. 일부 XML 메시지를 처리해야합니다 (값 비교 \ 상태 비교). 이 문제를 해결하려면 순수 Java를 사용하여 작성된 사용자 정의 프로세서가 필요하지만이 기능을 사용하려면 낙타 기능을 사용하도록 변경해야합니다. 코드 예 :낙타 xpath toLowerCase 및 포함

.choice() 
    .when().xpath("/Response/Header/Status = 'OK' ")...... 

괜찮습니다.

/Response/Header/Hint 

소문자로하고이 포함되어 있는지 확인 :

지금 나는의 값을 설정해야이 작업을 수행하기 위해, 다른 힌트 힌트를 비교해야합니다. 예를 들어/응답/헤더/힌트 값 (- 경우 은 :

<Hint>MyHint</Hint> 

- 소문자로가 .... 그렇지 않으면 다음 "힌트"노선 ...이 들어 나는 XPath는 전문가와 낙타의 모습 아니다 같은이 FO 일부 변경이있다, 그래서 당신이 좀 도와주십시오 수 있습니다.

한가지 더 내가 (일부 태그를 제거) 앞으로 메시지를 전달하기 전에> 전체 < 힌트> MyHint </힌트를 제거 어떻게, 관심

그리고 낙타를위한 xpath에 빨리 들어가기위한 자습서를 조언 해 줄 수 있습니다.

답변

1

fn:lower-case(string)을 사용하여 How can I convert a string to upper- or lower-case with XSLT?에서 설명한대로 힌트를 비교할 수 있습니다. <Hint> 태그의 제거에 대한

당신은 같이하여 여러개의 posibilities 가지고 : remove xml tags with XSLT

  • 통화 필터링을 수행하는 Bean을 같이 콘텐츠를 필터링 할 수

    1. 사용 XSLT
  • +0

    XSLT를 사용하여 xml 태그 제거와 같이 콘텐츠를 필터링합니다. 완벽하게 일했습니다! 내가 테스트 실패 아마도 일부 triming 공간이 추가됩니다 \ 제거,하지만, 메시지가 제대로 tranformed 볼 수 있습니다, 감사합니다! 지금 먼저 시도해 보겠습니다. – user1424119

    +0

    듣고 다행이라면 문제가 해결되면 답변을 수락 할 수 있습니까? (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work을 참조하십시오) –

    +0

    받아 들일 수있는 15 가지 평판이 필요합니다. 한 번 더 고마워요! – user1424119

    1

    대답은 다음과 같습니다.

    .choice() 
        .when().xpath("/Response/Header/Status/text() = 'OK'") 
         .to("xslt:xsl/RemoveTag.xsl") 
          .choice().when().xpath("//Response/Header/Hint[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'hint')]").to 
    

    RemoveTag.xsl이 약간 변경됨 remove xml tags with XSLT olivier roger에 감사드립니다!