2016-07-09 2 views
0

는 아래방법은 토큰에 입력 XML을 끊고 토큰

<docValues> 
01|1596056|CCCCCCCCCDD|028571|ABCCHAS|29150699|150800|FFSSSSFFFF|005| |N|N|002| | |0000020319|29150699|163000|29150699|153100|666666|20140627|400|RRRRR|400| |20150701 
02|1596056|028571|29150699|0001|400| | |0001|THIS IS MY SERVICE,,| | | |0901.99| |0.5| 
03|1596056|028571|29150699|0001|5103|29150699|29150699| |1.000|99.098| | 
<docValues> 

Below are the details of xml input 
    01 : First Line Number 
    02 : Second Line Number 
    03 : Third Line Number 

XSLT가

<SO> 
    <line01_2nd_token>1596056</line01_2nd_token> 
    <line01_4th_token>028571</line01_4th_token> 
    <line01_5th_token>ABCCHAS</line01_4th_token> 
<SO> 
<PARIS> 
    <line01_4th_token>028571</line01_4th_token> 
    <line02_5th_token>0001</line02_5th_token> 
    <line03_11th_token>99.098</line03_11th_token> 
</PARIS> 
<MY_SERVICE> 
    <line01_4th_token>028571</line01_4th_token> 
    <line03_5th_token>0001</line02_5th_token> 
    <line02_6th_token>400</line02_6th_token> 
</MY_SERVICE> 

출력 이상 달성하기 XML 아래 입력 XML과 outout를 읽어야 XSLT에 입력되는 값 읽기 : 입력 XML의 라인 (01,02,03)은 | 구분 기호로 각 줄 (01,02,03)에서 원하는 토큰 값을 읽을 수 있도록

그래서 여기에 내 질문은 토큰으로 입력 XML을 깨고 토큰 값을 읽는 방법입니다.

날이 문제

답변

0

음을 해결하는 데 도움이 바랍니다 원하는 출력을 달성하기 위해 어떤 방법이 있나요, 당신은 라인을 찾기 위해 두 번째 인수 '\r?\n' 먼저, 두 번 사용할 수있는 기능 tokenize있다 , 각 줄을 '\|'에 토큰화할 수 있습니다. 정보에 대한

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    exclude-result-prefixes="xs" 
    version="2.0"> 

    <xsl:output indent="yes"/> 

    <xsl:template match="docValues"> 
     <xsl:variable name="lines" select="tokenize(., '\r?\n')[normalize-space()]"/> 
     <xsl:variable name="line1-tokens" select="tokenize($lines[1], '\|')"/> 
     <SO> 
      <line01_2nd_token><xsl:value-of select="$line1-tokens[2]"/></line01_2nd_token> 
     </SO> 
     <PARIS> 
      <line01_4th_token><xsl:value-of select="$line1-tokens[4]"/></line01_4th_token> 
     </PARIS> 
     <MY_SERVICE> 
      <line01_4th_token><xsl:value-of select="$line1-tokens[4]"/></line01_4th_token> 
     </MY_SERVICE> 
    </xsl:template> 
</xsl:stylesheet> 
+0

감사하지만 내가 원하는 출력을 달성하는데 실패하고있다 :

는 여기에 몇 가지 토큰을 추출 예를 들어, 당신은 자신에 그것을 완료 할 수 있어야합니다. 내가 어디에서 시작할 수 있는지, 다음/이전 줄로 어떻게 안내 할 수 있는지 알려주세요. 일단 라인이 토큰으로 깨진다면 어떻게 원하는 토큰 값을 직접 읽을 수 있습니까? – user2587669