Добавление значения узла в xhtml с использованием DOM с Java - PullRequest
0 голосов
/ 16 сентября 2011

У меня есть требование, что я хочу добавить содержимое тела в файл xhtml.У меня есть XML-файл с пустым тегом тела.Итак, я хочу добавить содержимое тела через Java с помощью анализаторов, поэтому я делаю что-то вроде ниже, но это не работает ..

Может кто-нибудь сказать причину

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());
}

вbodyContent У меня есть некоторая информация, которую я хочу добавить в тело newFile.Даже если я использовал метод setNodeValue (), он также не работает для меня.Что-то не так?

Я получаю значение addBody как '[body: null]';как указать на этот узел тела?

Пожалуйста, дайте мне какие-нибудь указатели ..

Заранее спасибо ..

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

Когда вы изменяете дерево dom, вы изменяете его в памяти, но исходный файл, из которого происходит это дерево dom, не затрагивается. Вам необходимо записать измененное дерево dom в файл, чтобы сохранить изменения, сделанные вами в памяти.

Это точно так же, как если бы вы читали весь файл в StringBuilder. Изменение StringBuilder не будет волшебным образом записывать новое содержимое в файл.

См. http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT4.html пример кода для записи дерева DOM в файл.

0 голосов
/ 16 сентября 2011

Значение узла? Вы имели в виду Text Node? Если это так, вы должны создать новый текстовый узел и добавить его в addBody. Вы можете просто вызвать setNodeValue в объекте TextNode, чтобы установить текстовое содержимое. Пожалуйста, проверьте http://download.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/Document.html#createTextNode%28java.lang.String%29

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...