问题标签 [tei]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
87 浏览

xslt - xsl:当两个节点相等时,显示第一个节点的子节点

我正在使用 XML 编辑器 19.1、Saxon PE 9.7。

对于每个选定div的 ,我希望在graphic/@url每个<surface>if surface/@xml:id=之后显示一个div/@facs

XSL

TEI例子

我试过<xsl:value-of select="preceding::facsimile/surfaceGrp[@type='tablet']/surface[@n, @xml:id]/graphic/@url"/>了,但它显示了所有graphic/@url,而不仅仅是下面的一个fascsimile/surfaceGrp/surface。所以我的问题是:如何只显示surface/graphic/@url每个div3[@type='col']/div4[@n]

在此先感谢您的帮助。

0 投票
1 回答
104 浏览

xml - 如何在 Note TEI XML 中插入换行符或回车符

我正在写注释,目前正在尝试格式化它们。我在 Oxygen 工作,我已经尝试了这两种方法,显然只是在注释中按了 enter,但不幸的是它们都没有工作。感谢您的任何建议

0 投票
2 回答
133 浏览

xslt - eXist DB 和 Xquery:xincludes 还是集合 (TEI-XML)?

我有一个 TEI-XML 语料库,它使用一个“主”语料库 XML 文档,然后包含xi:include数千个其他文档。这些文档中的每一个本身都包含xi:includes 以掌握命名实体(由xml:ids 链接的人、地点等)的列表。所有这些都在 XSLT 中运行良好(在我的 IDE Oxygen 中用于快速编码)。

我现在正在着手使用 eXist-DB 应用程序构建一个网站。我正在直接在 Xquery 中重写所有内容(以替换 XSLT),但我遇到了一个意想不到的决定。我习惯于xi:includes遍历语料库和各种 XMLs 文件。但是阅读 eXist DB 的文档,似乎鼓励的做法是使用集合并直接查询它们,而不是通过xi:includes 导航。似乎 eXist-DB 不支持xi:includes无论如何的完整实现并且需要一些解决方法?

我正在寻找有关 eXist-DB/Xquery 在这种情况下的最佳实践的指导。

提前谢谢了。

0 投票
0 回答
44 浏览

exist-db - 无法加载文档 /LoW.xml。也许它不是有效的 TEI 或不在 TEI 命名空间中?

我确信这是非常基本的,但我正在将一个训练数据库与一些关于特定船只丢失的文件放在一起。将其上传到存在数据库(我使用 tei-publisher ... 创建了数据库)并想要呈现文件时,出现上述错误。

我很确定我的文件没问题,但是我很生气。请在以下粘贴中找到 tei 代码。

https://pastebin.com/0H3jCfe8 标头在代码中,根据需要(并且令人讨厌)

OxygenXML 声称 IllegalStateException 但我找不到错误....

0 投票
1 回答
434 浏览

python - 将 .tei 文件转换为 .txt 文件

我有.tei以下格式的文件。

我想将上述文件转换为如下所示的.txt格式:

T. Berners-Lee、J. Hendler 和 O. Lassilia。“语义网”,《科学美国人》,2001 年 5 月

我尝试使用以下代码:

上面代码的问题是循环顺序执行,字符串不是顺序格式。

其次,可能还有更多的内循环。在没有手动检查的情况下提取内部循环中的内容也是有问题的。请在这件事上给予我帮助

0 投票
3 回答
578 浏览

xml - 使用 XSL 文档加载多个文件并将它们存储在单独的变量中

我编写了一个小 XSL 转换来将多个 .xml 文档合并到一个文件中。为此,我正在使用该document()功能。目前我的解决方案运行良好,但我问自己是否有更优雅的方法来做到这一点。

有没有另一种方法来加载多个文件并将它们中的每一个存储在一个变量中,然后在其中处理这些多个变量xsl:copy-of

这是我当前的 XSL 转换的示例(XSLT 是 XPROC 管道的一部分,第一个文件在管道中加载):

0 投票
1 回答
379 浏览

xslt - 使用 XSLT 的 eXist-DB 转换失败 - 在哪里可以找到错误日志?

环境:eXist 4.2.1 - xquery 3.1 - xslt 3.0 - TEI-XML 文档

使用 eXide 界面,我尝试使用 XSL 文件对 TEI-XML 文档进行转换,并输出 HTML。

到目前为止,我一直在用 Oxygen 开发 XML 文档和它们的 XSL 转换。在 Oxygen 中启动转换或使用终端,两者都可以正常工作。现在我正在使用 eXist 准备一个 Web 应用程序(其中将包含数千个 TEI-XML 文档)。

我正在尝试使用以下 xquery 测试在 eXist 中简单地启动相同的转换:

eXide 只返回给我这个:

exerr:ERROR Unable to set up transformer: Stylesheet compilation failed: 62 errors reported [at line 3, column 16]

我是 eXist DB 的新手,无法弄清楚如何获取错误原因。

  1. 如何访问 eXist 中的错误详细信息(详细日志?)?(我搜索了我的书籍和在线文档但没有成功;例如https://exist-db.org/exist/apps/doc/xsl-transform对错误没有任何帮助)。

  2. 对于氧气和终端转换,我使用 Saxon 9he。我知道 eXist 使用相同?

注意:我的文档都组织在与我计算机上的设置相同的 eXist 集合中,因此所有相关位置都应该正常工作吗?

0 投票
1 回答
33 浏览

xslt - XSL 2.0 - 从嵌套元素生成不同的 url

我有 tei-xml 文件,我在其中标记了中世纪文档中的命名实体,特别是使用<persName/>. 一个简单的例子:

然而,手稿中经常有一些名字需要我标记为“Raimunda uxor Bernardi Fabri”(即“Raimunda,Bernard Faure 的妻子”)。在这里,我以嵌套方式标记了这两个名称:

通常这对于查询数据来说不是问题。但是,我想通过 XSLT 2.0 为网页输出以下内容,其中每个名称都转换为指向该人自己网页的 URL(使用@nymRef)。上面应该输出到这个:

(即。...etiam nec tortor erat Raimunda uxor Bernardi Fabri est leo cursus magna, maximus finibus...)

此外,有时会发生以下情况(两个名称嵌套在一个中):

(虽然从来没有<persName>嵌套三层的情况)

我完全不知道如何递归地区分和处理//persName[x]以及 //persname[x]//persName[x]使它们成为单独的 URL。

url 是从静态值 + 生成的after-substring(//tei:persName/@nymRef,'#')。显然,一个简单的 XSL 语句会返回一个基数错误:

非常感谢您的任何帮助。

0 投票
1 回答
55 浏览

xslt - XSLT 输出到 HTML:基于另一个元素添加一个带有递增数字的 HTML 元素

我有一些tei:xml文档,我正在使用 XSLT 2.0 将其转换为 HTML。tei 文档的有效结构如下所示:

在几个 <xsl:template>s 中,我将 xml 转换为 HTML,然后循环浏览 tei 文档以识别需要转换为上标脚注编号的元素。我使用<xsl:number function>来增加数字:

产生三个<sup/>增量值为 1、2、3:

我似乎无法解决的问题是如何输出以下内容,在满足条件时(基于)<sup>添加:<p><tei:seg>seg[@corresp]

我可以让它们在单独的模板中工作(在创建 html 时<p/>),但不能在一个模板中工作。但是,在单独的模板中会重新开始编号。

提前谢谢了。

0 投票
1 回答
131 浏览

xslt - XSLT 2.0 通过多阶段转换在 HTML 输出中创建增量脚注编号

这个问题建立在对我最初的问题的回答之上,建议我在其中发布后续内容。这涉及尝试集成上一篇文章中的 XSL 代码。

在上一个问题中,我展示了 TEI:XML 文档的简化版本,我正在使用 XSLT 2.0 将其转换为 HTML(完整的 tei 文件和当前的 xslt 可以在这里找到https://xsltfiddle.liberty-development.net/bdxtqT/6)。这是层次结构的更完整视图,但不是所有细节:

所需的 HTML 输出如下所示。增量脚注编号是<sup>根据以下三个条件之一创建的:

  • date[@type="deposition_date"](添加脚注编号),

  • seg[@type="typefoo"](添加脚注编号。)

  • note[@type="public_note"](替换为脚注编号)。

期望的输出

完整的 XSLT 转换文档可在https://xsltfiddle.liberty-development.net/bdxtqT/6找到,其中可以看到以下问题:

  • date[@type='deposition_date']正在被完全替换,而不是收到一个添加的脚注标记
  • seg[@type='dep_event' and @corresp]没有收到添加的脚注标记,但它出现在<div>页面底部。

XSL 文件太长,似乎无法正确粘贴到此处。在此处与文件交互https://xsltfiddle.liberty-development.net/bdxtqT/6

注意:我仅限于 XSLT 2.0,因为这种转换是在 eXist-DB 内部使用 Xquery 3.1 触发的。

非常感谢!