을 사용하여 노드 순서를 변경하는 방법 여기, 내가 가진 무엇XML 자바 DOM
<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());
}
}
내가 지금하고있는 일이 아닌가요? 나는 그것을 발견하고 그것을 덧붙인다. 제발 도와주세요 Alex – user1888502
샘플 편집을 참조하십시오. – Alex
조언을 주셔서 감사합니다. XML API에는 너무 많은 호출이있어서 시행 착오가 오래 걸립니다. 노드를 복사하는 것이 중요합니다. –