Как получить пару значений ключа из XML-документа JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как получить пару значений ключа из XML-документа Java

Сообщение Anonymous »

У меня есть XML-документ, из которого я хотел бы получить ключ и значение из этого XML-документа. Однако у меня возникли проблемы с получением обоих. Я понимаю, что мне следует использовать тип данных Map, но не знаю, как это сделать.

Пример:

У меня есть следующий XML-файл:




emailrequest
emailresponse


Cleanrequest
Cleanresponse




Я хотел бы написать метод, который анализирует этот файл и возвращает мне пару ключ-значение узла (ключа) и значения (значения) XML.< /p>

Например, [requestqueue,emailrequest] [responsequeue,emailresponse] и т. д.

Что у меня есть сейчас :

public Map parseXML(File f) throws Exception {

String xml = FileUtils.readFileToString(f);

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.parse(new InputSource(new StringReader(xml)));
Element rootElement = document.getDocumentElement();

// I'm stuck...

return null;
}


Будем очень признательны за любую помощь или содействие, спасибо.

Изменить:


Я провел небольшое исследование и нашел что-то, что выводит мне значения, но только одну из клавиш «Возврат».

@Test
public void testConverter() throws Exception {
String xml = ("xmlDir/request.xml");
Map map = convertNodesFromXml(xml);

for(Map.Entry entry: map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();

logger.debug("Key: "+key+" Value: "+value);
}

}

public static Map convertNodesFromXml(String xml) throws Exception {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(xml);

Element doc = document.getDocumentElement();
logger.debug(doc.getFirstChild());

return createMap(document.getDocumentElement());
}

public static Map createMap(Node node) {
Map map = new HashMap();
NodeList nodeList = node.getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++) {
Node currentNode = nodeList.item(i);
if (currentNode.hasAttributes()) {
for (int j = 0; j < currentNode.getAttributes().getLength(); j++) {
Node item = currentNode.getAttributes().item(i);
map.put(item.getNodeName(), item.getTextContent());
}
}
if (node.getFirstChild() != null && node.getFirstChild().getNodeType() == Node.ELEMENT_NODE) {
map.putAll(createMap(currentNode));
} else if (node.getFirstChild().getNodeType() == Node.TEXT_NODE) {
map.put(node.getLocalName(), node.getTextContent());
}
}
return map;
}


Вывод:

2015-08-18 15:01:31,651 : Key: Return Value:

136
125
SEPTEMBER
250

OCTOBER
250
125
136

136
125
250
APRIL

136
JUNE
250
125

MAY
136
250
125

136
250
125
JANUARY

136
125
250
MARCH

250
AUGUST
136
125

3000

136
125
250
DECEMBER

136
JULY
125
250

136
125
FEBRUARY
250

1500
555-11-2222

125
136
NOVEMBER
250

1632

1
22000
1
22000

1970-01-01

555-11-2222

CA


Подробнее здесь: https://stackoverflow.com/questions/320 ... ument-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как получить пару значений ключа из XML-документа Java
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как получить пару значений ключа из XML-документа Java
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Как получить пару значений ключей из XML Document Java
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как инициализировать пару значений ключа на месте в std::map
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как инициализировать пару значений ключа на месте в std::map
    Anonymous » » в форуме C++
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»