Задать вопрос
@roman3847

Как разобрать XML документ при помощи DOM парсер, если нам нужно получить данные не типа String, а например Date?

Есть XML документ:
<car>
<name>Volvo</name>
<date_make>04.02.1971</date_make>
</car>


Как разобрать этот документ, если название автомобиля нужно положить в программу как тип String, а дату производства типа Date, чтобы потом работать с датой. Пока есть такой код:
Есть класс, в котором описаны поля автомобиля:
public class Car {
private String name;
private Date make;

public void setName(String name) {
		this.name = name;
	}

public void setMake(Date make) {
		this.make = make;
	}
}

Сам разбор собственно:
file = "location";
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(file);

            NodeList nodeList = doc.getDocumentElement().getChildNodes();
        
            for (int i = 0; i < nodeList.getLength(); i++) {
            	
                Node node = nodeList.item(i);
                if (node instanceof Element) {
                      Car obj = new Car();
                      NodeList childNodes = node.getChildNodes();
                      
                      for (int j = 0; j < childNodes.getLength(); j++) {
                          Node cNode = childNodes.item(j);

                      if (cNode instanceof Element) {
                                        String name = cNode.getLastChild().getTextContent();
                                        Date content1 = ?????; //для текстового содержимого есть метод getTextContent(), а что делать если содержимое типа Date
                                        String str = cNode.getNodeName();
                                        switch (str) {
                                          case "name":
                                           obj.setName(content);
                                            break;
                                          case "date_make":
                                           obj.setMake(content1);
                                            break;
}
}
}
  • Вопрос задан
  • 2466 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы