我正在尝试匿名化汇合的 XML 导出。我找到了他们的出口清洁剂罐:
https://confluence.atlassian.com/doc/content-anonymizer-for-data-backups-134795.html
我已经修改了clean.stx
删除所有用户,如下所示:
<stx:template match="object[@class='ConfluenceUserImpl']/property[@name='name']/text() | object[@class='ConfluenceUserImpl']/property[@name='lowerName']/text() | object[@class='ConfluenceUserImpl']/id[@name='key']/text() | property[@class='ConfluenceUserImpl']/id[@name='key']/text()">
<stx:value-of select="translate(., '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')"/>
</stx:template>
我还需要使用正则表达式或类似方法修改 CDATA,以删除汇合页面正文中的用户提及。
CDATA 看起来像这样,例如:
<property name="body">
<![CDATA[
<p>
<ac:link>
<ri:user ri:userkey="8a8300716489cc7d016489ce009a0000" />
</ac:link>
</p>
]]>
</property>
这里我只需要替换ri:userkey
为 xxx 或类似的值即可。
我怎样才能做到这一点?