Вопрос в том, действительно ли вы хотите добавить сериализованную строку XML в файл или хотите добавить новый экземпляр Foo в структуру XML.
Добавление на основе строки приведет к неверному XML примерно так:
<foo>
<a>1</a>
<b>booo</b>
<bar>
<id>42</id>
</bar>
</foo>
<foo>
<a>1</a>
<b>booo</b>
<bar>
<id>42</id>
</bar>
</foo>
Вместо этого вы можете захотеть сохранить данные в .xml, сначала проанализировав их, затем добавить новый элемент и сериализовать всю коллекцию / массив.
Так что-то вроде этого (при условии, что в a.xml уже есть коллекция Foo
s):
List foos = xs.fromXml(...);
foos.add(new Foo(1, "booo", new Bar(42)));
xs.toXml(foos, pw);
... что дает вам что-то вроде этого:
<foos>
<foo>
<a>1</a>
<b>booo</b>
<bar>
<id>42</id>
</bar>
</foo>
<foo>
<a>1</a>
<b>booo</b>
<bar>
<id>42</id>
</bar>
</foo>
</foos>
НТН