2015-02-10 103 views
1

之前,我寫了一些JCR文件夾/var/myProject/sitemap可以sitemap.xml的,我想刪除舊的sitemap.xml如何刪除節點的孩子?

Resource resource = resourceResolver.getResource("/var/myProject/sitemap"); 
sitemapNode = resource.adaptTo(Node.class); 
sitemapNode.getNodes().remove(); 

sitemapNode.getNodes().remove();提供了以下異常:

*ERROR* [CM Event Dispatcher (Fire ConfigurationEvent: pid=MyClass] The start method has thrown an exception (java.lang.UnsupportedOperationException) 

如何刪除所有兒童sitemapNode的?

回答

1

sitemapNode.getNodes();返回NodeIterator。可用的remove()方法是從Iterator繼承的方法。

引述文檔remove()

從底層集合的最後一個元素通過 這個迭代器(可選操作)返回刪除

當您嘗試從一個不可修改的集合中刪除,它給人的UnsupportedOperationException

使用sitemapNode.remove()刪除sitemapNode並重新創建它(這將刪除它的所有子節點以及節點),或者遍歷每個子節點,然後分別調用remove()方法。這將調用從javax.jcr.Item繼承的節點的remove()方法。

+0

我使用了sitemapNode.remove()選項。謝謝 :) – Ronald 2015-02-10 13:24:42