如何在 BaseX 中使用正则表达式删除元素
How to delete elements with regex in BaseX
我有一个具有以下格式的 BaseX 数据库
<root>
<node1>
<value1>abctetabc</value1>
<value2>...</value2>
</node1>
<node1>
<value1>abctatabc</value1>
<value2>...</value2>
</node1>
</root>
请问如何删除值包含tet的节点。
我必须使用正则表达式吗?
正常删除是这样执行的
XQUERY delete root/node1[value1='abctatabc']
如何搜索子字符串?
如果要删除数据库中的节点,可以使用delete node root/node1[value1='abctatabc']
(请参阅BaseX 文档中的XQuery Update)。如果想在不改变原文档的情况下删除,可以使用update
关键字:
document {
<root>
<node1>
<value1>abctetabc</value1>
<value2>...</value2>
</node1>
<node1>
<value1>abctatabc</value1>
<value2>...</value2>
</node1>
</root>
} update {
delete node root/node1[value1 = 'abctatabc']
}
当然你也可以寻找子字符串(通过fn:contains
) or use regular expressions (via fn:matches
):
delete node root/node1[matches(value1, 'abc')]
我有一个具有以下格式的 BaseX 数据库
<root>
<node1>
<value1>abctetabc</value1>
<value2>...</value2>
</node1>
<node1>
<value1>abctatabc</value1>
<value2>...</value2>
</node1>
</root>
请问如何删除值包含tet的节点。 我必须使用正则表达式吗?
正常删除是这样执行的
XQUERY delete root/node1[value1='abctatabc']
如何搜索子字符串?
如果要删除数据库中的节点,可以使用delete node root/node1[value1='abctatabc']
(请参阅BaseX 文档中的XQuery Update)。如果想在不改变原文档的情况下删除,可以使用update
关键字:
document {
<root>
<node1>
<value1>abctetabc</value1>
<value2>...</value2>
</node1>
<node1>
<value1>abctatabc</value1>
<value2>...</value2>
</node1>
</root>
} update {
delete node root/node1[value1 = 'abctatabc']
}
当然你也可以寻找子字符串(通过fn:contains
) or use regular expressions (via fn:matches
):
delete node root/node1[matches(value1, 'abc')]