假设我有这样的事情:
FooDocument fooDoc = FooDocument.Factory.newInstance();
fooDoc.addNewBar();
如果我生成了一个代表fooDoc
的字符串,它看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Foo>
<Bar/>
</Foo>
现在,假设我有一个仅包含此文件的文件:
<Bar/>
而不是以Bar
编程方式添加Foo
,我想读取文件并将文件内容添加到fooDoc
,如下所示:
FooDocument fooDoc = FooDocument.Factory.newInstance();
Bar bar = Bar.Factory.parse("file-containing-bar");
fooDoc.add(bar);
这可以与XML Bean一起使用吗?显然,仅包含Bar
节点的文件不是XML文件。
答案 0 :(得分:0)
Unfornutaly,“普通”文件是不可能的。首先,包含<Bar/>
的文件必须是XML文件,以便传入的XML元素可以绑定到XMLBeans类型,而您的文件则不能。在此参考中,您可以阅读更多内容:XMLBeans
如果有可能将“普通”Bar文件转换为XML文件,并将foo作为foo.xml中的根元素,Bar作为bar.xml中的根,那么可能存在一些解决方法,例如:这样:
1)创建2个XML文件 foo.xml - Foo元素是root
<?xml version="1.0" encoding="utf-8"?>
<Foo>
<Bar/>
</Foo>
和 bar.xml - bar元素是root
<?xml version="1.0" encoding="utf-8"?>
<Bar/>
2)创建2个“文档”界面
FooDocument fooDocument = FooDocument.Factory.parse("foo.xml");
BarDocument barDocument = BarDocument.Factory.parse("bar.xml");
3)创建Bar实例
Bar barToCreate = fooDocument.getFoo().addNewBar();
4)使用barToExploit(从bar.xml表示根元素Bar)
Bar barToExploit = barDocument.getBar();
然后,完全取决于您对此barToExploit实例的操作。假设它有一个存储字符串的子元素,你可以这样做:
barToCreate.setValue(barToExploit.getValue());
答案 1 :(得分:-1)
您应该能够将xml文件读入字符串数组,然后在需要的地方注入内容。你可以用
if(fileStringArray.contains("<foo> ++ seperator + </foo>"){//inject text}
检查可以放置它的内容容器,然后将其注入其中。然后你可以将文件保存为xml文件,如下所示:
while(fooDoc != null){
fooDoc.write(YourString);
fooDoc.write(Runtime().getRuntime().getProporty("line.seperator");
}
或类似的东西。
希望这有效!祝你好运。