Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: java & XML. Не могу получить значение узла.  (Прочитано 7608 раз)
0 Пользователей и 1 Гость смотрят эту тему.
riman
Участник

ru
Offline Offline

« : 19-07-2003 09:57 » 

Не могу получить значение узла. Вернее получаю но получаю не то, что записано в узле.
Вот вам отрывок из проги:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document doc=db.parse(f);
Node root=doc.getDocumentElement();
Node tempChild=root.getFirstChild();


System.out.println(tempChild.getNodeName());
System.out.println(tempChild.getNodeValue());

Этот отрывок выводит:
tablename
null
А вот XML файл:
<table>
<tablename>Currency</tablename>
<pk>KOD</pk>
<field>FullName</field>
</table>

Кто знает подскажите в чем проблема.
Записан
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 18-08-2003 16:40 » 

Цитата: riman
Не могу получить значение узла. Вернее получаю но получаю не то, что записано в узле.
Отрывок из проги:
Код:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document doc=db.parse(f);
Node root=doc.getDocumentElement();
Node tempChild=root.getFirstChild();

System.out.println(tempChild.getNodeName());
System.out.println(tempChild.getNodeValue());
XML файл:
Код:
<table> 
<tablename>Currency</tablename>
<pk>KOD</pk>
<field>FullName</field>
</table>
Кто знает подскажите в чем проблема.
Жжешь
Содержимое элемента в DOM - элемент Text, пэтому тебе надо получить элемент Text, а потом уже его значение.
Попробуй воспользоваться следующей функцией:
Код:
public static String getContent(Element elem)
    {
        StringBuffer content = new StringBuffer();
        for (Node curNode = elem.getFirstChild(); curNode != null; curNode = curNode.getNextSibling())
        {
            if (curNode.getNodeType() == Node.TEXT_NODE)
            {
                content.append(curNode.getNodeValue());
            }
        }
        return content.toString();
    }
:idea:
И вообще, пользуйся JDom (www.jdom.org) и  не мучайся с фабриками!
Хоть нет еще даже первой версии, но это чертовски удобно!  Ага
« Последнее редактирование: 19-11-2007 07:01 от RXL » Записан
riman
Участник

ru
Offline Offline

« Ответ #2 : 20-08-2003 07:36 » 

Да, именно это я и сделал. Спасибо за ссылку.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines