我想获得作者在某个页面的新版本中添加的网址。
示例:作者在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),它收集旧版本和新版本的网址,并从新发现的网址中删除旧找到的网址,如下所示。
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;
}
Prolbem是这个函数也找到了url,作者也已经删除了(mybe,因为即使作者从页面中删除/编辑url,它们仍然存储在内容中)。知道如何解决这个问题吗?