Xml xslt创建的html页面中未显示诗歌文本的部分 我正在研究一个文本的数字化,但是文本中间的一部分诗歌没有显示出来,你能帮助我吗?

Xml xslt创建的html页面中未显示诗歌文本的部分 我正在研究一个文本的数字化,但是文本中间的一部分诗歌没有显示出来,你能帮助我吗?,xml,xslt,Xml,Xslt,XSL代码: XML代码: XML文件中未转换的部分为: <div type="poetry"> <epigraph> <lg rhyme="ababcb"> <l><name type="person">Beatrice</name> tutta ne l’etterne <rhyme label="a">rote</rhyme></l>

XSL代码: XML代码:

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>

比阿特丽斯·图塔·内特·罗特
菲萨·康利·奥奇·斯塔瓦;李文耀
勒鲁西·菲西,我是里莫特。
Nel suo aspetto tal dentro mi fei,
格劳科·内尔·古斯塔·德尔·尔巴酒店
这是一家位于阿尔特里岛的餐馆。

您有一个模板
和一个模板
,但后者不使用
应用模板
,因此前一个模板永远不会应用。您的整个方法都是错误的,不要在匹配模板的内部为每个使用
来处理一些子元素,而是使用
应用模板
并为子元素编写模板

您还可以通过使用诸如
之类的文本结果元素而不是
来节省一些输入

所以不是

<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>

诗
诗
使用



对于
,您需要确保将
放入其中,以确保子节点得到处理,因为您在其中有各种各样的内容,我无法确切地说出您想要它的位置,但一般方法与上面的示例相同,将输入的元素映射到您想要的HTML,然后使用应用模板处理其子节点,确保为那些需要输出的元素编写模板。

好的,我不确定我是否全部完成XD您能给我举个例子吗?我的大学教授应该给我们解释正确的方法,不用说它没有发生……它起作用了,谢谢你的帮助和解释^_^
<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>