xquery - Exist-db 用 XQUERY 添加节点
问题描述
我有一个 listPers.xml(显然包含人员的 TEI 列表)。我想编写一个函数来更新 listPers.xml 我的函数如下所示:
declare function app:addPerson($node as node(), $model as map(*)) {
let $person := "<person xml:id=""><persName><forename>Albert</forename><surname>Test</surname></persName></person>"
let $list := doc(concat($config:app-root, '/resources/listPers_test.xml'))
return
update insert $person into $list//tei:listPerson
};
而且 listPerson.xml 看起来或多或少像一个带有人员条目的典型列表我有一个 tei:header (这里省略),然后是
<text>
<body>
<listPerson xml:id="person">
<person xml:id="abbadie_jacques">
<persName ref="http://d-nb.info/gnd/100002307">
<forename>Jacques</forename>
<surname>Abbadie</surname>
</persName>
<note>Prediger der französisch-reformierten Gemeinde in <rs type="place" ref="#berlin">Berlin</rs>
</note>
</person>
</body>
</text>
</TEI>
(很抱歉破坏了缩进,这只是一个摘录)我没有收到错误,这意味着我的 app:addPerson 应该没问题,对吧?我希望 listPers_test 看起来像这样:
<text>
<body>
<listPerson xml:id="person">
<person xml:id="abbadie_jacques">
<persName ref="http://d-nb.info/gnd/100002307">
<forename>Jacques</forename>
<surname>Abbadie</surname>
</persName>
<note>Prediger der französisch-reformierten Gemeinde in <rs type="place" ref="#berlin">Berlin</rs>
</note>
</person>
<!-- here comes the output that I wish to have :-) -->
<person xml:id=""><persName><forename>Albert</forename><surname>Test</surname></persName></person>
</body>
</text>
</TEI>
从长远来看,我的目标是允许用户输入名称等的 html 表单,其中 id 是使用 sth 生成的
to-lowercase(concat($surname, "_", $forename));
但我不会讨论有关表单和 xquery 的问题,因为我几乎没有完成关于 html 表单和 xquery 的快速 Google 之旅!
谁能提示我为什么我没有用第二个值更新 listPers_test.xml 文件?:-)
一切顺利,并提前感谢大家,K
解决方案
好的,我为任何对此感兴趣的人提供了一个解决方案:
我的第一个片段$person:= ...
包含一个字符串,而不是一个元素。换行
let $person := "<person xml:id=""><persName><forename>Albert</forename><surname>Test</surname></persName></person>"
这实际上解决了这个问题:
let $person := <tei:person xml:id=""><persName><forename>Albert</forename><surname>Test</surname></persName></tei:person>
推荐阅读
- multidimensional-array - 如何编写一个将 ndarray Array 或 ArrayView 作为输入的通用函数?
- python-3.x - 如何停止特定的线程?
- python - 在 Python 中使用字符串格式添加空格
- java - FileWritter 将整数写入为非法字符
- python - Python 中的 if 与 Elif,哪个更好?
- microservices - 我可以在单体或微服务中同时拥有 fontend(pages) 和后端吗?
- oracle - NLS_TIMESTAMP_FORMAT 在客户端设置在哪里?
- swift - 按钮鼠标向上事件期间的鼠标移动事件
- c - 计算 3 个动态表的中位数、平均值和标准差并将它们添加到文件中
- vba - 查找/替换 VBA 代码未正确执行