2015-01-23 2 views
-1

텍스트의 디지털화 작업 중이지만 텍스트 중간에있는시 부분은 표시되지 않습니다. 도와 주실 수 있습니까?xtl에 의해 생성 된 html 페이지에시의 텍스트 부분이 표시되지 않습니다.

XSL 코드 : http://pastebin.com/TkgZLurQ XML 코드 : http://pastebin.com/fyA4Ka1f

transformated되지 않는 XML 파일의 부분은 다음과 같습니다

<div type="poetry"> 
    <epigraph> 
     <lg rhyme="ababcb"> 
      <l><name type="person">Beatrice</name> tutta ne l’etterne <rhyme label="a">rote</rhyme></l> 
      <l>fissa con li occhi stava; e io in <rhyme label="b">lei</rhyme></l> 
      <l>le luci fissi, di là sù <rhyme label="a">rimote</rhyme>.</l> 
      <l>Nel suo aspetto tal dentro mi <rhyme label="b">fei</rhyme>,</l> 
      <l>qual si fé <name type="person">Glauco</name> nel gustar de l’<rhyme label="c">erba</rhyme></l> 
      <l>che ’l fé consorto in mar de li altri <rhyme label="b">dèi</rhyme>.</l> 
     </lg> 
    </epigraph> 
</div> 

답변

1

당신은이 템플릿 <xsl:template match="tei:body/tei:div[@type='racconto']/tei:div[@type='poetry']"> 및 템플릿 <xsl:template match="tei:body/tei:div[@type='racconto']">하지만, 후자는하지 않습니다 apply-templates을 사용하면 이전 템플리트가 적용되지 않습니다. 전체 접근법이 잘못되었으므로 일치하는 템플릿 안에 for-each을 사용하여 일부 자식 요소를 처리하지 말고 대신 apply-templates을 사용하고 자식 요소에 대한 템플릿을 작성하십시오.

<xsl:element name="div">...</xsl:element> 대신 <div>..</div>과 같은 리터럴 결과 요소를 사용하여 타이핑을 절약 할 수 있습니다.

그래서 대신 들어

<xsl:template match="tei:body/tei:div[@type='poetry']"> 
    <xsl:element name="div"> 
     <xsl:attribute name="class">poetry</xsl:attribute> 
     <xsl:for-each select="tei:epigraph/tei:lg/tei:l"> 
      <xsl:element name="p"> 
       <xsl:attribute name="class">poetry</xsl:attribute> 
       <xsl:element name="i"> 
        <xsl:value-of select="."/> 
       </xsl:element> 
      </xsl:element> 
     </xsl:for-each> 
    </xsl:element> 
</xsl:template> 

사용

<xsl:template match="tei:body/tei:div[@type='poetry']"> 
    <div class="poetry"> 
     <!-- depending on your needs <xsl:apply-templates/> suffices, or use --> 
     <xsl:apply-templates select="tei:epigraph/tei:lg/tei:l"/> 
    </div> 
</xsl:template> 
<xsl:template match="tei:epigraph/tei:lg/tei:l"> 
    <p class="poetry"> 
    <i> 
    <xsl:apply-templates/> 
    </i> 
    </p> 
</xsl:template> 

<xsl:template match="tei:body/tei:div[@type='racconto']"> 당신은 당신이 거기에 다양한 물건을 가지고 당신이 확실 자식 노드가 처리하기 위해 거기에 <xsl:apply-templates/>을 넣어 있는지 확인해야합니다 정확히 원하는 부분을 말할 수는 없지만 일반적인 접근법은 위의 예와 같이 입력 요소를 원하는 HTML에 매핑 한 다음 apply-templates를 사용하여 자식을 처리하고 해당 템플릿을 작성하도록합니다 ou를 필요로하는 요소 tput.

+0

괜찮 았어, 내가 다 알아 냈어. XD 나 한테 제발 제발 좀 줄래? 대학의 교수님이 올바른 접근법을 설명해 주셨습니다. 말할 필요도없이 ... – Vinz29

+0

도와 주셨고 설명 해 주셔서 감사합니다^_ ^ – Vinz29

관련 문제