在我写一些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的所有子项?
答案 0 :(得分:1)
sitemapNode.getNodes();
会返回NodeIterator。其中可用的remove()
方法是从Iterator继承的方法。
引用文档remove()
从底层集合中删除返回的最后一个元素 这个迭代器(可选操作)
当您尝试从不可修改的集合中删除时,它会提供UnsupportedOperationException
。
使用sitemapNode
删除sitemapNode.remove()
并重新创建它(这会将所有子节点与节点一起删除),或者遍历每个子节点,然后单独调用remove()方法。这将调用继承自javax.jcr.Item的Node remove()
方法。