Xml xslt创建的html页面中未显示诗歌文本的部分 我正在研究一个文本的数字化,但是文本中间的一部分诗歌没有显示出来,你能帮助我吗?
XSL代码: XML代码: XML文件中未转换的部分为: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>
<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>