输入
<?xml version="1.0"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader>
</teiHeader>
<text>
<body>
<div type="header"/>
<div type="adresse">
<pb n="A" facs="Adr.jpg"/>
<addrLine></addrLine>
</div>
<div ana="ausfertigung" type="arbeitsphase" n="1">
<pb n="1" facs="1.jpg"/>
<p>
<lb/> Lorem ipsum dolor sit amet,
<lb/>consectetur adipisicing elit,
</p>
<p>
<lb/> sed do eiusmod tempor incididunt ut
<lb/>labore et dolore magna aliqua.
</p>
<pb n="2" facs="2.jpg"/>
<p>
<lb/>Ut enim ad minim veniam,
<lb/>quis nostrud exercitation ullamco laboris
</p>
</div>
</body>
</text>
</TEI>
通缉输出:
<html>
<body>
<div id="page">
<div id="ausfertigung" class="text-bild">
<center>
<h4>Transkription</h4>
</center>
<div class="arbeitsphase-1">
<p>Here comes text</p>
</div>
</div>
<!--div ausfertigung ends -->
<div id="bild">
<center>
<h4>Manuskript</h4>
</center>
<p>Here come all pictures</p>
<div id="1" class="facs-klein">
<img width="90%" src="1_klein.jpg"></img>
</div>
<div id="2" class="facs-klein">
<img width="90%" src="2_klein.jpg"></img>
</div>
</div>
<!--div bild ends -->
</div>
<!--div page ends -->
</body>
</html>
我更新的XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:tei="http://www.tei-c.org/ns/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs tei" version="2.0">
<xsl:output omit-xml-declaration="yes" indent="yes" encoding="ISO-8859-1"/>
<xsl:template match="tei:body">
<xsl:variable name="bild" select="tei:pb[@facs]"></xsl:variable>
<div id="ausfertigung" class="text-bild">
<center><h4>Transkription</h4></center>
<div class="arbeitsphase-{//tei:div[@type='arbeitsphase']/@n}">
<xsl:apply-templates select="//tei:div[@type='arbeitsphase'][not(self::tei:pb)]"/>
</div>
</div>
<div id="bild">
<center><h4>Manuskript</h4></center>
<xsl:apply-templates select="//tei:pb" mode="bild"></xsl:apply-templates>
</div>
</xsl:template>
<xsl:template match="tei:pb" mode='bild'>
<xsl:variable name="facs" select="substring-before(@facs, '.jpg')"/>
<div class="arbeitsphase-{@n}">
<div id="{$facs}" class="facs-klein">
<img src="{concat($facs, '_klein.jpg')}" width="90%"></img>
</div>
</div>
</xsl:template>
<xsl:template match="tei:p">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
</xsl:stylesheet>
输出我得到了更新的XSLT:
<div id="ausfertigung" class="text-bild">
<center>
<h4>Transkription</h4>
</center>
<div class="arbeitsphase-1">
<p>
Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
</p>
<p>
sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua.
</p>
<p>
Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris
</p>
</div>
</div>
<div id="bild">
<center>
<h4>Manuskript</h4>
</center>
<div class="arbeitsphase-A">
<div id="Adr" class="facs-klein">
<img src="Adr_klein.jpg" width="90%"/>
</div>
</div>
<div class="arbeitsphase-1">
<div id="1" class="facs-klein">
<img src="1_klein.jpg" width="90%"/>
</div>
</div>
<div class="arbeitsphase-2">
<div id="2" class="facs-klein">
<img src="2_klein.jpg" width="90%"/>
</div>
</div>
</div>
我不知道如何仅将pb输出到div id =“bild”。我在div id =“ausfertigung”和div id =“bild”中得到它两次。如果我可以处理除pb之外的所有元素或类似的东西,那将是完美的。但我不知道怎么...... 请帮助!
答案 0 :(得分:0)
您的预期输出和样式表确实没有意义。下面是猜测你想要实现的目标。
解决此类问题的最佳方法是编写单独的模板。然后,在处理什么类型的节点时更清楚,在你的情况下真的不需要变量。
请注意,代码假定在输入中的"http://www.tei-c.org/ns/1.0"
元素上声明了默认名称空间TEI
。通常,此元素不在TEI名称空间中。
这花了我很长时间,你也应该花时间仔细研究它。不要急于添加评论,例如“它不起作用!”。
<强>样式表强>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:tei="http://www.tei-c.org/ns/1.0" exclude-result-prefixes="tei" version="2.0">
<xsl:output omit-xml-declaration="yes" indent="yes" encoding="ISO-8859-1"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/tei:TEI">
<html>
<xsl:apply-templates/>
</html>
</xsl:template>
<xsl:template match="tei:teiHeader|tei:div[@type='header' or @type='adresse']|tei:lb"/>
<xsl:template match="tei:body">
<body>
<xsl:apply-templates/>
</body>
</xsl:template>
<xsl:template match="tei:div[@type='ausfertigung']">
<div id="{@type}" class="text-bild">
<center>
<h4>
<xsl:text>Transkription</xsl:text>
</h4>
</center>
<div id="bild">
<center>
<h4>
<xsl:text>Manuskript</xsl:text>
</h4>
</center>
<xsl:apply-templates/>
</div>
</div>
</xsl:template>
<xsl:template match="tei:pb">
<div class="arbeitsphase-{@n}">
<div id="{@n}" class="facs-klein">
<img width="90%" src="{@facs}"/>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
<强>输出强>
<html>
<body>
<div id="ausfertigung" class="text-bild">
<center>
<h4>Transkription</h4>
</center>
<div id="bild">
<center>
<h4>Manuskript</h4>
</center>
<div class="arbeitsphase-1">
<div id="1" class="facs-klein"><img width="90%" src="1.jpg"></div>
</div>
<div class="arbeitsphase-2">
<div id="2" class="facs-klein"><img width="90%" src="2.jpg"></div>
</div>
</div>
</div>
</body>
</html>
答案 1 :(得分:0)
我刚刚添加了处理tei:pb
的模式,并输出tei:div[@type='arbeitsphase']
除tei:pb
以外的所有节点:tei:div[@type='arbeitsphase'][not(self::tei:pb)]
。
那么,适用于我的样式表:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:tei="http://www.tei-c.org/ns/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs tei" version="2.0">
<xsl:output omit-xml-declaration="yes" indent="yes" encoding="ISO-8859-1"/>
<xsl:template match="tei:body">
<xsl:variable name="bild" select="tei:pb[@facs]"></xsl:variable>
<div id="ausfertigung" class="text-bild">
<center><h4>Transkription</h4></center>
<div class="arbeitsphase-{//tei:div[@type='arbeitsphase']/@n}">
<xsl:apply-templates select="//tei:div[@type='arbeitsphase'][not(self::tei:pb)]"/>
</div>
</div>
<div id="bild">
<center><h4>Manuskript</h4></center>
<xsl:apply-templates select="//tei:pb" mode="bild"></xsl:apply-templates>
</div>
</xsl:template>
<xsl:template match="tei:pb" mode='bild'>
<xsl:variable name="facs" select="substring-before(@facs, '.jpg')"/>
<div class="arbeitsphase-{@n}">
<div id="{$facs}" class="facs-klein">
<img src="{concat($facs, '_klein.jpg')}" width="90%"></img>
</div>
</div>
</xsl:template>
<xsl:template match="tei:p">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
</xsl:stylesheet>
我得到以下输出:
<div id="ausfertigung" class="text-bild">
<center>
<h4>Transkription</h4>
</center>
<div class="arbeitsphase-1">
<p>
Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
</p>
<p>
sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua.
</p>
<p>
Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris
</p>
</div>
</div>
<div id="bild">
<center>
<h4>Manuskript</h4>
</center>
<div class="arbeitsphase-A">
<div id="Adr" class="facs-klein">
<img src="Adr_klein.jpg" width="90%"/>
</div>
</div>
<div class="arbeitsphase-1">
<div id="1" class="facs-klein">
<img src="1_klein.jpg" width="90%"/>
</div>
</div>
<div class="arbeitsphase-2">
<div id="2" class="facs-klein">
<img src="2_klein.jpg" width="90%"/>
</div>
</div>
</div>