【发布时间】:2021-09-26 03:15:14
【问题描述】:
我有一组 XML 文件,其中地名(在不同的历史拼写中)被标记为
<place>:参见。 sample file。 place 标签还包含属性link,其值是指向世界历史地名词典页面的超链接,例如:
<place name="Wien" type="place_of_issue"
link="http://whgazetteer.org/places/12346175/portal">Wien</place>
使用 XSLT 将 XML 文件转换为 HTML,我希望将文本中的每个此类标记替换为超链接 <a href>,链接到相同的 WHG URL。
基于Michael Hor-257k 答案的我的 XSL 的最小版本是:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<!-- Jekyll statement -->
---
<xsl:for-each select="source/metadata/digital_surrogate">
layout: page
title: <xsl:value-of select="@filename"/>
permalink: /<xsl:value-of select="@filename"/>/
exclude: true
---
</xsl:for-each>
<!-- Get transcription with links -->
<div class="flex-container">
<div><p><strong>Transkription:</strong></p>
<p><xsl:apply-templates select="//div">
</xsl:apply-templates>
<!-- include WHG links -->
<xsl:for-each select="//place">
<p>Genannte Orte im World Historical Gazetteer:</p>
<a href="{//place/@link}" target="_blank">
<xsl:value-of select="."/>
</a><br/>
</xsl:for-each>
</p><br/>
</div>
</div>
</xsl:template>
</xsl:stylesheet>
这至少正确地显示了以正确顺序提及的所有地名,带有正确的 WHG 链接和正确的名称:
<a href="http://whgazetteer.org/places/12346175/portal" target="_blank">Wien</a>
<a href="http://whgazetteer.org/places/13067462/portal" target="_blank">Maintz</a>
<a href="http://whgazetteer.org/places/12346175/portal" target="_blank">Wien</a>
但是,链接仍然显示在转录下方,而不是内部。
我想要的 HTML 输出是:
<div class="flex-container">
<div>
<p><strong>Transkription:</strong></p>
<p>
Wir Vorsteher und gesamte
Meister des ehrsamen Handwerks der bürgerl:[ichen] Tischlern in der K:[aiserlich]
K:[öniglichen] Haubt = und Residenz Stadt <a href="http://whgazetteer.org/places/12346175/portal" target="_blank">Wien</a> (beglaubigen) hiermit,
daß gegenwertiger Tischlergesell, Namens Georg
Gramer von <a href="http://whgazetteer.org/places/13067462/portal" target="_blank">Maintz</a> - -
[etc.]
</p>
</div>
</div>
【问题讨论】:
-
1.请发布minimal reproducible example。 2、你知道
//是什么意思吗?