想象一下这样的 XML 文档:
<?xml version="1.0" encoding="UTF-8" ?>
<books>
<book name="book1"></book>
<book name="book2"></book>
</books>
我想在过滤掉一些书后将文档写入一个新文件。我正在使用 JOOX 并且有一些这样的代码:
final FastFilter nameFilter = new FastFilter() {
final Set<String> validNames = new HashSet<>();//contains "book1"
@Override public boolean filter(Context context) {
return !validNames.contains($(context).attr("name"));
}
};
final Document doc = $(new StringReader("entire text of xml document...")).document();
final Match m = $(doc).find("book").remove(nameFilter);
我试过这样的东西m.write(new File(output.xml));
,但只输出:
<book name="book1"></book>
换句话说,它缺少父元素<books>
以及初始 XML 声明。知道如何做到这一点吗?寻找一个简单/优雅的解决方案,最好使用 JOOX,而不是 20 行 DOM 代码:)