我有XML字符串,如:
<Tree Name="tree1">
<Service>Service1</Service>
<Tree Name="tree2">
<Service>Service2</Service>
<Service>Service3</Service>
</Tree>
<Service>Service4</Service>
<Tree Name="tree3">
<Service>Service4</Service>
<Service>service5</Service>
</Tree>
</Tree>
和绑定结构:
<mapping ordered="false" allow-repeats="true" abstract="true" type-name="Tree"
class="Tree">
<collection ordered="false" allow-repeats="true" get-method="getTrees" set-method="setTrees" usage="optional">
<structure usage="optional" ordered="false" allow-repeats="true" map-as="Tree" name="Tree"/>
</collection>
<collection ordered="false" allow-repeats="true" get-method="getServices" set-method="setServices" usage="optional">
<structure usage="optional" ordered="false" allow-repeats="true" map-as="Service" name="Service"/>
</collection>
<value style="attribute" name="Name" get-method="getName" set-method="setName" usage="optional"/>
</mapping>
但是当我尝试unmarshall xml时,我只在root中捕获一个Tree而只捕获一个Service。是否有任何posibilites从xml获取所有数据?
答案 0 :(得分:0)
我通过在binding.xml中使用这样的构造解决了这个问题:
<collection ordered="false" get-method="getCollection" set-method="setCollection" usage="optional">
<structure map-as="Service" name="Service" usage="optional"/>
<structure map-as="Tree" name="Tree" usage="optional"/>
</collection>
这给了我所有元素的集合,我可以手动对它进行排序。