Xquery 特定属性节点替换

Xquery 特定属性节点替换,xquery,marklogic,Xquery,Marklogic,如何在MarkLogic中为特定属性替换节点?例如: <chapters> <title id="primary">first primary content</title> <title id="primary">second primary content</title> <title id="secondary">this is amy middle content</title> <title id

如何在MarkLogic中为特定属性替换节点?例如:

<chapters>
<title id="primary">first primary content</title>
<title id="primary">second primary content</title>
<title id="secondary">this is amy middle content</title>
<title id="terciary">this is amy last content</title>
</chapters>
<chapters>
<title id="primary">third primary content</title>
<title id="secondary">this is amy middle content</title>
<title id="terciary">this is amy last content</title>
</chapters>
<chaptermetadata>
<chapters>
<title id="primary">common content</title>
<title id="secondary">This is middle content</title>
<title id="terciary">This is last content</title>
</chapters>
<chapters>
<title id="primary">common content</title>
<title id="secondary">This is new content</title>
<title id="terciary">This is old content</title>
</chapters>
<chaptermetadata> 
现在,我想替换所有元素
title
中的一个节点,该元素在所有章节中都包含属性
@id='primary'
,如下所示:

<chapters>
<title id="primary">first primary content</title>
<title id="primary">second primary content</title>
<title id="secondary">this is amy middle content</title>
<title id="terciary">this is amy last content</title>
</chapters>
<chapters>
<title id="primary">third primary content</title>
<title id="secondary">this is amy middle content</title>
<title id="terciary">this is amy last content</title>
</chapters>
<chaptermetadata>
<chapters>
<title id="primary">common content</title>
<title id="secondary">This is middle content</title>
<title id="terciary">This is last content</title>
</chapters>
<chapters>
<title id="primary">common content</title>
<title id="secondary">This is new content</title>
<title id="terciary">This is old content</title>
</chapters>
<chaptermetadata> 

共同内容
这是中间内容
这是最后的内容
共同内容
这是新内容
这是旧内容

如果您刚刚开始使用XQuery和MarkLogic,可能会有所帮助

修改元素和属性的最佳方式取决于您尚未提供的上下文。我想第一个问题是“如何按属性选择节点?”一个简单的XPath就可以做到这一点。对于数据库中的所有章节:

/chapters/title[@id eq $id]
…或相对于先前选择的元素序列(第章)*


如果这是一个数据库文档,您可以使用和函数从中获取它。如果节点仅在内存中,请参阅以获取有关使用XQuery类型开关或XSLT的指南和示例。现在有更多的typeswitch和XSLT的示例和比较。

根据您提供的示例,您似乎希望将
text()
替换为具有
@id='primary'的第一个
title
元素,并将其他
title
元素替换为
@id='primary'`

下面将使用和方法实现这一点


考虑到两个代码块之间的差异,很难理解您请求的是什么转换