XQuery如何跳过指定元素,仅提取article-title并剔除inline-formula
XQuery实现剔除article-title内inline-formula元素的方案
实现效果
完全移除article-title节点下所有inline-formula元素及其内部内容,仅保留article-title的剩余原生内容。
方案1:XQuery 3.0及以上版本(推荐)
使用内置的转换更新语法,逻辑简洁易读:
let $source := <!-- 此处替换为你的原始XML节点数据 --> return transform with copy $temp_doc := $source modify delete nodes $temp_doc//article-title//inline-formula return $temp_doc//article-title/node()
方案2:XQuery 1.0兼容版本
如果你的运行环境不支持XQuery 3.0的转换语法,可以使用递归过滤函数实现:
declare function local:remove-inline-formula($nodes as node()*) as node()* { for $node in $nodes return typeswitch ($node) (: 匹配到inline-formula元素直接返回空,即移除该节点和所有子内容 :) case element(inline-formula) return () (: 其他元素节点保留标签和属性,递归处理子节点 :) case element() return element {node-name($node)} { $node/@*, local:remove-inline-formula($node/node()) } (: 文本、注释等其他节点直接保留 :) default return $node }; let $source := <!-- 此处替换为你的原始XML节点数据 --> return local:remove-inline-formula($source//article-title/node())
输出结果
针对你提供的示例XML,两种方案最终输出结果均为:CDM-like models with future singularities
内容的提问来源于stack exchange,提问作者user16760372
相关产品推荐
相关产品推荐

