首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TEI和XSLT:输出文件中没有内容

TEI和XSLT:输出文件中没有内容
EN

Stack Overflow用户
提问于 2013-04-19 15:29:58
回答 1查看 504关注 0票数 0

我有一个用TEI“标准”组织的xml文档,也许你们中的一些人知道它。我创建了一个XSLT将其转换为另一个XML结构。

但我遇到了一个问题。转换过程不会到达XML结构中的特定节点。

原始文档如下所示:

代码语言:javascript
复制
<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:tgl="http://******/namespaces  /metadata/language/2010" xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:tns="http://*****/namespaces/metadata/core/2010" xmlns:tgr="http://*****/namespaces/metadata/agent/2010" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:tgs="http://*****/namespaces/metadata/script/2010" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:id="tg397" n="/Literatur/M/Birlinger, Anton/Märchen und Sagen/Sagen, Märchen, Volksaberglauben/3./299. Von den Sternen/2. [Die Sterne halten Viele für die Köpfe silberner Nägel]">
<teiHeader xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:a="http://www.*****/namespace/digibib/authors" xmlns:fn="http://www.w3.org/2005/xpath-functions">

<fileDesc>
    <titleStmt>
    <title> hshshhshs </title>
</titleStmt>
<publicationStmt>
   ....

使用我的XSLT,我尝试到达一些节点。因为没有,所以我试了一个简单的例子,但我不能达到的内容。这是XSLT:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
    <!--<xsl:template match="/TEI">-->
 <xsl:template match="/">


        <add><doc>
            <field name="title">
                <xsl:value-of select="TEI/teiHeader/fileDesc/titleStmt/title"/>
            </field>-
        </doc></add>


 </xsl:template>
 </xsl:stylesheet>

这就是结果:

代码语言:javascript
复制
 <?xml version="1.0" encoding="UTF-8"?>
   <add>
   <doc>
    <field name="title"/>-

       </doc>
   </add>

我希望你们中有人能帮助我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-19 15:37:32

这是因为TEI文档以下面这行开头

代码语言:javascript
复制
<TEI xmlns="http://www.tei-c.org/ns/1.0"

这意味着文档中的所有元素都在名称空间""http://www.tei-c.org/ns/1.0“”中,除非另外指定了名称空间前缀

但是,在XSLT文档中,您试图选择没有名称空间的元素,因此它与TEI中有名称空间的元素不匹配。

解决方案是首先在XSLT文档中声明相关的名称空间,使用您喜欢的任何前缀:

代码语言:javascript
复制
<xsl:stylesheet 
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
   xmlns:tei="http://www.tei-c.org/ns/1.0"
   version="1.0">

然后,您可以像这样编写XLST语句

代码语言:javascript
复制
<xsl:value-of select="tei:TEI/tei:teiHeader/tei:fileDesc/tei:titleStmt/tei:title"/>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16099519

复制
相关文章

相似问题

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