2012-11-30 6 views
0

2 개의 스크린 샷과 코드가 첨부됩니다. animation_sequence를 닫고 끝나는 대괄호로 가져 오려고 노력하고 있습니다. 최선을 다했지만 지금은 도움을 요청합니다. 도와주세요. 내가 가진 코드는잘못된 XML 출력 생성

코드로 생성합니다

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder builder = factory.newDocumentBuilder(); 
     Document testDoc = builder.parse(new File("./data/sprite_types/" + spriteName + "/" + spriteName + ".xml")); 
     Element state = testDoc.createElement("state"); 
     state.setTextContent(element); 
     Element animationState = testDoc.createElement("animation_state"); 
     Element sequence = testDoc.createElement("animation_sequence"); 
     testDoc.getElementsByTagName("animations_list").item(0).appendChild(animationState).appendChild(state); 
     testDoc.getElementsByTagName("animation_state").item(testDoc.getElementsByTagName("state").getLength() - 1).appendChild(sequence); 
     DOMSource source = new DOMSource(testDoc); 
     PrintStream ps = new PrintStream("./data/sprite_types/" + spriteName + "/" + spriteName + ".xml"); 
     StreamResult result = new StreamResult(ps); 
     TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
     Transformer transformer = transformerFactory.newTransformer(); 
     transformer.transform(source, result); 

not good good

+0

:

는이 문제를 방지하려면 animation_sequence 요소의 자식 노드로 빈 Text 노드를 추가 할 필요가 내가 알아 차린 첫 번째 것 - '시퀀스'는 닫는 태그에서 철자가 잘못되었습니다. – Makoto

+0

그건 내 부분에있는 오타 였어. 내가 어떻게되고 싶은지 증명하는거야. –

답변

1

이유는 당신이 animation_sequence 요소를 생성하지만, 그 아래에있는 모든 자식 노드를 작성하지 않을 것입니다. 효과적으로 비어있는 요소를 만듭니다. 빈 요소는 문자열로 직렬화 될 때 항상 <tag></tag>이 아닌 <tag/>으로 표시됩니다.

sequence.appendChild(testDoc.createTextNode("")); 

(당신은 커먼즈 랭를 사용하는 경우 또는 대체 StringUtils.EMPTY"") 그래서

+0

시퀀스를 추가하기 전에 내가 말한 것을 시도해 보았습니다. 추가 한 후에도 여전히 동일한 문제가 있습니다. –

+0

이삭, 너는 남자 야! 이제 작동합니다. :) –

+0

아아, 이제 방금 아무 것도 추가하지 않음을 깨달았지만, 추가 공간을 추가함으로써 현재 야후는 "야후"가되었다. –