XSL:在由多个 TEI-XML 元素组成的字符串中添加到子字符串的链接

凡妮莎

几天以来,我尝试w[@type='verb']在字符串中添加指向子字符串的链接我工作的一个TEI-XML泥板的音译,从而elements@type<w>包含的<l>并不总是以相同的顺序。

XSLT 3.0 版:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:template match="/">
 <xsl:apply-templates select="//div1"/>
</xsl:template>

<xsl:template match="//div1">
<!-- additional content before <ul> -->
 <ul>
  <li>
    <xsl:for-each select="descendant-or-self::lg/l[@n]">
       <xsl:variable name="verb1" select="w[@type='verb']"/>
       <xsl:variable name="href1" select="w[@type='verb']/@lemmaRef"/>
       <xsl:variable name="single-l" select="w[@type='coo'] | w[@type='noun'] | w[@type='verb'] | w[@type='num'] | w[@type='adv'] | w[@type='adj'] | g | name"/>

       <xsl:value-of select="$single-l"/> 
       <sup><xsl:value-of select="./@n"/></sup>
     </xsl:for-each>
   </li>
 </ul>
</xsl:template>

我需要lemmaRef为每个w[@type='verb'].

的样品TEI除去I -@xml:idelement以外l:对于此示例

<lg>
    <l n="4b-5a" xml:id="ktu1-3_ii_l4b-5a">
       <w type="coo">w</w><space/>
       <w type="verb" lemmaRef="uga/verb.xsl#qry"><damage degree="medium" facs="definir"><supplied resp="KTU">t</supplied></damage>qry</w>
       <g>.</g>
       <w type="noun" lemmaRef="uga/noun.xsl#ġlm">ġlmm</w>
       <lb/><w>b</w><space/>
       <w type="noun" lemmaRef="uga/noun.xsl#št">št</w>
       <g>.</g>
       <w type="noun" lemmaRef="uga/noun.xsl#ġr">ġr</w>
       <g>.</g>
    </l>
 </lg>

我需要显示:

<ul>
 <li>w <a href="uga/verb.xml#qry">tqry</a> . ġlmm št . ġr .<sup>4b-5a</sup></li>
</ul>

“tqry”是包含在<l>.

我该怎么做XSLT才能显示<a href="{$href1}"><xsl:value-of select="$verb1"/>. 我试过replace$single-l或定义先前的新变量XSLT的代码,但它不工作。我也试过,key但我想我仍然有一个理解的问题......

在此先感谢您的友好建议。

马丁·霍南

我认为您不应该尝试构建一个字符串然后在那里插入标记,似乎应该可以简单地处理子元素然后匹配 将lg/l[@n]/w[@type = 'verb']其转换为 HTML 超链接:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="3.0">

  <xsl:output method="html" indent="yes" html-version="5"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>Example</title>
      </head>
      <xsl:apply-templates/>
    </html>
  </xsl:template>

  <xsl:template match="div">
      <section>
          <ul>
              <xsl:apply-templates select=".//lg/l[@n]"/>
          </ul>
      </section>
  </xsl:template>

  <xsl:template match="lg/l[@n]">
      <li>
          <xsl:apply-templates/>
          <sup>
              <xsl:value-of select="@n"/>
          </sup>
      </li>
  </xsl:template>

  <xsl:template match="lg/l[@n]/w[@type = 'verb']">
      <a href="{@lemmaRef}">
          <xsl:apply-templates/>
      </a>
  </xsl:template>

  <xsl:template match="space">
      <xsl:text> </xsl:text>
  </xsl:template>

</xsl:stylesheet>

这目前并不能完全产生想要的结果,但是

<li>w <a href="uga/verb.xsl#qry">tqry</a>.ġlmmb št.ġr.<sup>4b-5a</sup></li>

取而代之的是,如果您不需要或不想要某个元素的内容,您可以为其添加一个空模板,这样它就不会产生任何输出(例如<xsl:template match="lg/l[@n]/w[not(@type)]"/>)。

我不确定是否也缺少重要的空格以及插入它的规则是什么,您可能需要对此进行解释。

在线示例位于http://xsltfiddle.liberty-development.net/b4GWV5/1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用tei:note的xml层次结构/ xsl处理

来自分类Dev

用golang解析tei XML

来自分类Dev

使用 XSL 将 TEI-XML 字典转换为简单的 HTML 表

来自分类Dev

将Xml字符串添加到Xml节点

来自分类Dev

java将cdata添加到xml字符串

来自分类Dev

在将字符串添加到XML之前对字符串进行消毒?

来自分类Dev

在将字符串添加到XML之前对字符串进行消毒?

来自分类Dev

匹配由给定集合中的子字符串组成的字符串

来自分类Dev

将多个字符串的不同子字符串添加到树集

来自分类Dev

将多个字符串的不同子字符串添加到树集

来自分类Dev

从XML字符串SQL中获取多个答案

来自分类Dev

PHP返回XML字符串,并将值添加到缺少值的属性中

来自分类Dev

如何从 string.xml 中的字符串数组将子项添加到 ExpandableListView?

来自分类Dev

如何将字符串数组组件添加到 XML 配置中?

来自分类Dev

XML错误:有多个根元素,如何在asp.net c#中读取XML字符串变量?

来自分类Dev

XML到XSL的映射-如何检查元素代码值的长度-字符串(长度)

来自分类Dev

使用xml2从TEI XML创建数据框架

来自分类Dev

使用xml2从TEI XML创建数据框架

来自分类Dev

如何在Python中将多个字符串添加到集合中?

来自分类Dev

如何将多个文本文件中的字符串添加到数组

来自分类Dev

字符串未由strings.xml修改

来自分类Dev

获取由xCharsxInts组成的字符串的子字符串

来自分类Dev

从for循环内部将多个元素插入xml时进行字符串插值

来自分类Dev

从XML解析字符串时,将Extrea反斜杠添加到n

来自分类Dev

将字符串形式的XML内容添加到XDocument

来自分类Dev

PHP:从XML字符串中提取数据并添加到数组

来自分类Dev

在C#中将属性和字符串添加到XML文件

来自分类Dev

需要能够使用 shell 脚本将字符串(路径)添加到 XML 文件

来自分类Dev

C#:从XML字符串中选择多个节点

Related 相关文章

  1. 1

    使用tei:note的xml层次结构/ xsl处理

  2. 2

    用golang解析tei XML

  3. 3

    使用 XSL 将 TEI-XML 字典转换为简单的 HTML 表

  4. 4

    将Xml字符串添加到Xml节点

  5. 5

    java将cdata添加到xml字符串

  6. 6

    在将字符串添加到XML之前对字符串进行消毒?

  7. 7

    在将字符串添加到XML之前对字符串进行消毒?

  8. 8

    匹配由给定集合中的子字符串组成的字符串

  9. 9

    将多个字符串的不同子字符串添加到树集

  10. 10

    将多个字符串的不同子字符串添加到树集

  11. 11

    从XML字符串SQL中获取多个答案

  12. 12

    PHP返回XML字符串,并将值添加到缺少值的属性中

  13. 13

    如何从 string.xml 中的字符串数组将子项添加到 ExpandableListView?

  14. 14

    如何将字符串数组组件添加到 XML 配置中?

  15. 15

    XML错误:有多个根元素,如何在asp.net c#中读取XML字符串变量?

  16. 16

    XML到XSL的映射-如何检查元素代码值的长度-字符串(长度)

  17. 17

    使用xml2从TEI XML创建数据框架

  18. 18

    使用xml2从TEI XML创建数据框架

  19. 19

    如何在Python中将多个字符串添加到集合中?

  20. 20

    如何将多个文本文件中的字符串添加到数组

  21. 21

    字符串未由strings.xml修改

  22. 22

    获取由xCharsxInts组成的字符串的子字符串

  23. 23

    从for循环内部将多个元素插入xml时进行字符串插值

  24. 24

    从XML解析字符串时,将Extrea反斜杠添加到n

  25. 25

    将字符串形式的XML内容添加到XDocument

  26. 26

    PHP:从XML字符串中提取数据并添加到数组

  27. 27

    在C#中将属性和字符串添加到XML文件

  28. 28

    需要能够使用 shell 脚本将字符串(路径)添加到 XML 文件

  29. 29

    C#:从XML字符串中选择多个节点

热门标签

归档