2011-09-16 3 views
0

xhtml 파일 안에 본문 내용을 추가하고 싶습니다. xhtml 파일에 빈 body 태그가 있습니다. 그래서, 난 파서를 사용하여 자바를 통해 본문 내용을 추가하려는, 그래서 다음과 같은 몇 가지 일을하고 있지만 .. 작동하고 있지 않다자바에서 DOM을 사용하여 xhtml에 노드 값 추가하기

사람이 내가 가지고있는 BodyContent를에서 원인을

org.w3c.dom.Document document=null; 
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
document = factory.newDocumentBuilder().parse(newFile); 
NodeList list =document.getElementsByTagName("body");    
for (int i = 0; i < list.getLength(); i++) {      
Node addBody = list.item(i); 

addBody.setTextContent(bodyContent.toString()); 
System.out.println("text content"+addBody.getTextContent()); 
} 

를 말할 수 일부 정보는 newFile의 본문을 추가하고 싶습니다. 심지어 setNodeValue() 메서드를 사용했습니다, 그것은 나를 위해 또한 작동하지 않습니다. 어떤 것이 잘못 되었나요?

addBody 값이 '[body : null]'으로 표시됩니다. 그 시체 노드를 가르키는 방법?

나에게 어떤 포인터를주십시오 .. 사전에

감사합니다 ..

+0

"작동하지 않음"이란 무엇을 의미합니까? 예외? 그렇다면 스택 트레이스는 무엇입니까? 그렇지 않다면 무엇을 기대하며 무엇을 관찰합니까? –

+0

나는 어떤 예외도 얻지 못하고 있지만 내용을 본문에 추가 할 수는 없지만 body 태그 안에 내용을 추가 할 것을 기대하고 있습니다. – rajesh

+0

코드가 잘 작동합니다 : 빈 본문이있는 HTML 파일에서 사용하면 태그를 사용하여 System.out.println 줄에 표시된 새 텍스트 내용을 봅니다. bodyContent.toString()의 값은 무엇이며 화면에 System.out.println 행으로 무엇이 출력됩니까? –

답변

0

노드 값? 당신은 텍스트 노드를 의미 했습니까? 그 경우 새 텍스트 노드를 작성하여 addBody에 추가하십시오. TextNode 객체에서 setNodeValue를 호출하여 텍스트 내용을 설정할 수 있습니다. 확인하십시오 http://download.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/Document.html#createTextNode%28java.lang.String%29

+0

의 setNodeValue 메소드가 없습니다.이 TextNode t = 새 TextNode ("", " rajesh

+0

새로운 Text 노드를 만들고 싶지 않습니다, 파일의 기존 노드에 데이터를 추가하고 싶습니다. 어떤 해결책이 있니? – rajesh

1

dom 트리를 수정하면 메모리에서 수정되지만이 dom 트리가있는 원본 파일은 영향을받지 않습니다. 메모리에 변경 한 내용을 유지하려면 수정 된 dom 트리를 파일에 써야합니다.

StringBuilder에서 전체 파일을 읽는 것과 완전히 같습니다. StringBuilder를 수정해도 마술처럼 새로운 내용이 파일에 쓰여지지는 않습니다.

DOM 트리를 파일에 쓰는 예제 코드는 http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT4.html을 참조하십시오.

+0

감사합니다 Nizet,이 유용하고 나는 몸에 추가 할 수 있어요. – rajesh

관련 문제