首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从XML TEI文件中提取数据

从XML TEI文件中提取数据
EN

Stack Overflow用户
提问于 2021-07-06 20:46:37
回答 1查看 31关注 0票数 0

我正在使用TEI XML文件完成对一本小说的编码。我想使用XSLT提取每个章节的字符,标记为:

代码语言:javascript
复制
<name type="character" key="nameofthecharacter">Name</name>

结构是这样的:

代码语言:javascript
复制
  </teiHeader>
    <text>
      <body>
        <div n='firstchapter' type='chapter'>
           <head>title</head>
              <p><name type="character" key="Sam">Sam</name> is a character        
              </p>
        </div>
        <div n='secondchapter' type='chapter'>
           <head>title</head>
              <p><name type="character" key="Elody">Elody</name>                           is a character
    </body>
  </text>
</TEI>

我尝试了基本的XSLT,如下所示:

代码语言:javascript
复制
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 version="1.0">
         <xsl:output method="text"/>
         <xsl:template match="/TEI/text/body/div[@type = 'book']"/>
             <xsl:apply-templates select="name[@type = "character"/>
   </xsl:template>
</xsl:stylesheet>

但似乎不是正确的语法。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2021-07-07 21:30:45

Cuhio8。

应用模板语法中有一个拼写错误,看起来您需要将div与@type =‘章节’相匹配,并为带有@type= 'character‘的后代元素名称应用模板。

在这种情况下,应该像这样修改XSLT代码:

代码语言:javascript
复制
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 version="1.0">
     <xsl:output method="text"/>

     <xsl:template match="/TEI/text/body/div[@type = 'chapter']">
          <xsl:apply-templates select="descendant::name[@type = 'character']"/>
     </xsl:template>
</xsl:stylesheet>

如果对你有效,请让我知道。

致以最好的问候,Vasyl

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68270847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档