1

我想获取作者在某个页面的新版本中添加的网址。

示例:作者在 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,它们仍然存储在内容中)。知道如何解决这个问题吗?

4

0 回答 0