Не могу получить значение узла. Вернее получаю но получаю не то, что записано в узле.
Отрывок из проги:
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) и не мучайся с фабриками!
Хоть нет еще даже первой версии, но это чертовски удобно!