问题标签 [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.
r - 尝试在 R 中提取 TEI xml 属性时获取空列表
我目前正在尝试从一组 TEI xml 文件中提取一些数据。我已经到了某个地方并且发现(根据这个网站:XPath tester site)一个有效的 xpath 表达式。但是,问题是,一旦尝试将此表达式与 一起使用xpathApply
,我就会得到一个空列表作为结果。跑步sapply(xmlfile, xmlValue)
对此没有影响。我有点不知道哪里出了问题,希望你们能帮助我解决这个问题。
XML 文件:
代码:
控制台输出:
我试图获取的部分 xml 文件:
attributes - 如何自定义 TEI 方案/如何向 TEI Doc 添加自定义属性?
我想使用可以在 Oxygen XML 中找到的 teiCorpus 元素/方案来构建语料库。可悲的是,我不知道在哪里添加属性,如<date>
or <mediatype>
。我试图将它们放入标题或正文中,但 Oxygen 不会验证文档,因为这些属性在我放置它们的位置是不允许的。我也尝试<p class="mediatype">
在身体中使用类似的东西,但"class='mediatype'"
似乎也不起作用。我需要更改 dtd 以使其工作还是有其他可能性?
因为有人问我,这里有一些示例代码:
我想将自定义属性(如“mediatype”或“date”)放在那里,就像在普通的 xml 文件中一样。我几乎尝试了所有选项,但我只得到错误代码,例如"element "date" not allowed here; expected the element end-tag or element ..."
如何在 TEI 中实现自定义属性?可能吗?
r - 在文本文件文件夹上使用带有换行符的正则表达式进行替换
我有数百个 OCRed 法律期刊的文本文件,我最终用 TEI-XML 进行编码。我正在使用正则表达式进行大量清洁。我一直在使用 Oxygen XML 编辑器进行此清理,它对于单个查找和替换替换做得很好,但我想使用某种脚本,以便我可以重用一系列数十个替换来处理页眉、脚注、常见错误等。
我需要执行的替换包括换行符。例如,我可能有这样的文字:
我希望变成这样:
据我所知,换行符对这种替代品构成了挑战。例如,请参阅我使用的这个问题gsub_dir
:R - 使用 regex 查找/替换换行符。Wiktor Stribiżew提出的解决方案适用于我的狭隘问题,但我不知道如何推广。(这里提供的解决方案似乎也是如此:R Find and replace multiple scripts at once)
例如,除了一个可行的替换列表,如
不幸的是,不能使用
我也四处寻找 Python 解决方案,但运气不佳。有些人使用FAR - Find and Replace之类的应用程序,但像 Oxygen 一样,它们不允许在文件文件夹上轻松重用替换列表。
xml - XSLT/TEI:如何让两个页面并排显示?
我目前正在制作某部作品的数字版。我有每一个双页(所以 f28v 和 f29r 在文件里面)
我希望“test”类成为由<pb/>
. 我当前的 xslt 仅将“test”类添加到从<pb/>
“测试”类将被引导程序或语义用户界面的网格版本替换,然后将使用 CSS 对其进行格式化以使其看起来更漂亮。
(我来自使用 Javascrippt 和 nodeJS 进行 Javascript/Web 开发,所以 XSLT 对我来说相当新)
xml - XML 根据匹配将除 text() 之外的所有内容从一个 XML 复制到另一个 XML
您好——我是 XSLT 的新手:
我有两个带有一些匹配元素的 XML TEI 文件。我想用第二个文件中TEI_test.xml
的相应<w>
元素替换第一个文件中的每个元素lookup.xml
,以便@lemma
第一个文件中的属性与第二个文件中的属性匹配@lemma
(lookup.xml
)。除了实际的text()
. 如果没有匹配,TEI_test.xml
则应保留原始元素。
这是TEI_test.xml
文件:
这是查找表:lookup.xml
我想出的XSLT如下:
虽然这设法复制了所有匹配的<w>
节点,但w[@lemma]
在保存 时它不会产生预期的结果w/text()
,这将在第二个<xsl:choose>
系列中解决。这是我得到的:
我真正想要获得的是:
有任何想法吗?
xml - 如何使用 XSLT 创建 HTML 十六进制实体
我正在尝试编写一个 XSLT 样式表,以根据 TEI 标准从以 XML 编码的文本生成 HTML。
现在,当涉及到特殊字符时,我遇到了困难——这里有一个例子:单词“ſem”(标准化的“sem”,古老的挪威语关系代词)将被编码<g ref="#slong"/>em
,它指的是标题中的以下声明:
当然,这个想法是,能够查找每个字形的映射,然后相应地显示它。
例如,如果我想要一个显示文本标准化渲染的样式表,我会有类似的东西
正如预期的那样,这将输出“sem”。
但是,如果我想编写一个以外交方式显示文本的样式表,我希望输出为“ſem”。
为此,我开始:
这给了我“U+017Fem”。当然,这不是预期特殊字符的 HTML 实体。
所以我尝试了:
输出ſem
,看起来更像是一个 HTML 十六进制实体。但遗憾的是,它仍然如此显示,而不是解释为实体所代表的字符。
而且我一生都无法弄清楚,我是如何做到这一点的。
PS:如果这有帮助,我不会编写样式表来创建以后在浏览器中打开的 HTML 文件;我有一个带有 JavaScript 函数的 HTML 文件,它可以“即时”将 XML 数据转换为 HTML。
编辑:
正如 Martin Honnen 所指出的,在非 Mozilla 浏览器上<xsl:value-of select="$entity" disable-output-escaping="yes"/>
应该就足够了(参见https://xsltfiddle.liberty-development.net/ejivdH4/2)。
然而,对我来说,这仍然行不通。所以我猜我错过了一些重要的东西。这是我的完整文件(file.xml 被缩短/更改,因为原始文件是其他人在进行中的工作,但结果是一样的)。
文件.xml:
page.html
facs.xsl
dipl.xsl
我在浏览器中将文件视为 localhost(运行 python 服务器)。
有什么想法,我可能会错过什么或做错了什么?
注意:查找表不是我想要的,因为潜在地,TEI-XML 中的特殊字符可能与 unicode 字符一样多。这就是字形映射的用途。
XSLT 2.0 可能是一个选项;但我还没有弄清楚如何通过 JavaScript 在浏览器中进行 2.0 转换。
编辑2:
我不知道我第一次测试时出了什么问题,但在 IE 上它可以与<xsl:value-of select="$entity" disable-output-escaping="yes"/>
.
但由于它不适用于 Firefox,我决定改变整个设计:我在服务器端使用 PHP 转换 XML,然后将 HTML 发送到客户端;这应该适用于每个浏览器。
xpath - 对存在数据库的 XPath 查询不返回任何命中
我在 MacOS 上运行一个干净的存在数据库 4.5.0。刚刚安装了“莎士比亚”包进行测试。当我通过浏览器运行以下请求时,我没有得到任何点击。但是he5.xml是一个有效的TEI
文件并且包含在body
一个text
元素中。
http://127.0.0.1:8080/exist/rest/apps/shakespeare/data/he5.xml?_query=//text
在 URL 中使用基本身份验证凭据(用户:admin,密码:EMPTY)不会改变任何内容。 http://admin:@127.0.0.1:8080/exist/rest/apps/shakespeare/data/he5.xml?_query=//text
只有//*
XPATH 似乎有效(或被忽略?),因为我正在获取文件的全部内容。其他请求也不起作用(正确)。像//text()
xquery 一样:
这只是文字的第一击...
在 Ubuntu 上也用存在数据库 4.4.0 试过这个......同样的“结果”。
xml - xQuery:在 TEI 中查找未注释的文本
我在编写 xQuery 时遇到问题。我有一组 TEI 中的字母,文本中的每个人、组织和位置都必须在<persName>
,<placeName>
或<orgName>
. 我还有一个 XML 密钥列表,其中包含以下条目
文本中的大多数元素都已注释,但现在我必须编写一个 xQuery 来查找字母中的文本部分,这些部分在 KeyList 中有一个条目,但未使用上述元素之一进行标记。我不知道如何处理这个问题。提前感谢您的帮助!
xml - XSLT:处理 TEI 里程碑元素
我的问题与:具有重叠元素的 XSLT?– 但建议的解决方案对我不起作用。
输入
我有一些像这样编码的 TEI-XML:
我想用 XSL 处理它,我的输出应该如下所示:
XSLT 目前我正在尝试使用以下模板:
但这只会产生以下输出:
所以我问自己是否有任何常见且简单的解决方案来处理上述所谓的里程碑元素和流程?
xml - 使用 XSLT 2.0 按里程碑元素连接文本节点
我的 XML 文件具有 TEI 里程碑元素,例如<handShift new="#DP1053/>
;内容的开头总是有一个<text>
,但之后有时会有一些此类标签,其中两个或三个不同的属性值之一散布在<text>
元素中,以指示特定抄写员在最后一个之后拾取的位置。属性的值@new
指向@xml:id
TEI 头中的定义,注册为<handNote/>
元素的属性。
我在 XSLT 2.0 中的目标是连接每个抄写员编写的文本,以便我可以独立查询每个抄写员的工作。我想知道推荐的解决方案是否需要group-starting-with
,但我还没有完全理解所涉及的预处理(我将不胜感激指针)。相反,我自己的直觉是执行
- 一个
for-each
循环遍历抄写员的手,运行 - 一个
string-join
- 在所有文本节点上
- 其中,与当前循环迭代中处理的手相匹配的
<handShift/>
属性值的前一个比属性值不匹配的前一个更接近。@new
<handShift/>
我在转换为 HTML 的 XSLT 2.0 样式表中的试用语法如下:
但是,这仅返回文本中最终里程碑之后的文本节点,并且仅在为匹配该最终里程碑的属性值选择的 for-each 迭代中。我肯定把>>
陈述弄错了,对于这种方法或不同的基于分组的方法的任何建议,我将不胜感激。
我可能应该提到,一旦我掌握了这种串联,我将不得不<add hand="DP1054">addition</add>
通过排除这种性质的不匹配内容并包括匹配来将任何类型的内容(即手工修改与当前限制不匹配)添加到等式中位于不匹配的抄写员范围内的内容,但我不一定预见到必须将其添加到“正确”位置的串联中。因此,我应该能够通过两个相当简单的附加步骤来解决这些问题,但最初的串联或分组解决方案必须允许排除具有不匹配属性值的节点,以及我可能希望排除的任何其他元素(例如<expan>
在下面的例子)。
这是一个模拟 XML 文件: