我想获取作者在某个页面的新版本中添加的网址。
示例:作者在 myPage 中添加 www.url1.com 并激活 myPage。--> 1.0 版本生成作者在myPage 中添加www.url2.com 并激活myPage。--> 生成 1.2 版 -> myPage 1.2 版有 www.url1.com 和 www.url2.com
在这种情况下,该函数必须返回 www.url2.com。
我编写了一个函数getNewUrls(Set>String> urls),它从旧版本和新版本中收集 url,并从新找到的 url 中删除旧找到的 url,如下所示。
private Set<String> getNewUrls(Set<String> urls){
Set<String> newUrls = collectUrlsFromNodes(newVersionNode.getNodes());
Set<String> oldUrls = collectUrlsFromNodes(oldVersionNode.getNodes());
Set<String> myNewUrls newUrls.removeAll(oldUrls);
}
private Set<String> collectUrlsFromNodes(final NodeIterator nodeIter) {
Set<String> urlSet = new HashSet<String>();
while (nodeIter.hasNext()) {
Node subNode = nodeIter.nextNode();
urlSet.addAll(collectUrlsFromNodes(subNode.getNodes()));
if (subNode.hasProperty("fileReference")) {
String url = subNode.getProperty("fileReference").getString();
urlSet.add(url);
}
}
return urlSet;
}
问题是这个函数还找到了作者已经删除的 url(我可能是因为即使作者从页面中删除/编辑 url,它们仍然存储在内容中)。知道如何解决这个问题吗?