这是我所拥有的,
<animation_state>
<state>run</state>
<animation_sequence>
<pose duration="10" image_id="1"/>
<pose duration="10" image_id="2"/>
<pose duration="10" image_id="3"/>
</animation_sequence>
我想让用户能够上下移动某个图像,但是,由于它们存储在 XML 中,这意味着我必须更改图像 ID。如果假设用户希望 image_id = 3 成为序列中的第一个,或者在中间,或者根据他的需要,我该如何操作 XML?我正在使用 DOM。
如果用户希望图像 3 成为第一个,这就是我的 XML 的显示方式:
<animation_state>
<state>run</state>
<animation_sequence>
<pose duration="10" image_id="3"/>
<pose duration="10" image_id="1"/>
<pose duration="10" image_id="2"/>
</animation_sequence>
我的尝试:
Document dom = parser.getDocument();
for (int i = 0; i < dom.getElementsByTagName("animation_state").getLength(); i++)
{
if (dom.getElementsByTagName("animation_state").item(i).getChildNodes().item(0).getTextContent().equalsIgnoreCase(target)) {
posVal = i;
}
}
NodeList list = dom.getElementsByTagName("animation_sequence").item(posVal).getChildNodes();
for(int b=0; b<list.getLength(); b++)
{
if(list.item(b).getAttributes().item(1).getNodeValue().equalsIgnoreCase(PoseSelectionListener.imageIDOfSelectedPose))
{
Node toBeMoved = list.item(b);
dom.getElementsByTagName("animation_sequence").item(posVal).appendChild(toBeMoved);
System.out.println(toBeMoved.getAttributes().item(0).getNodeName());
}
}