У меня есть XML -документ, из которого я хотел бы получить ключ и значение из этого XML -документа. Однако у меня возникают проблемы с тем, чтобы получить оба, я понимаю, что я должен использовать карту типа данных, но я не уверен, как это сделать.
emailrequest
emailresponse
Cleanrequest
Cleanresponse
< /code>
Я бы хотел написать метод, который анализирует этот файл и возвращает мне пару значения ключа (ключ) и значение (значение) XML. < /p>
, например [requestqueue, emailRequest] [repplessqueue, emailResponse], и т. Д. есть: < /p>
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;
}
Any help or assistance would be much appreciated, thanks.
Edit:
I did some research and I found something that will print me the values but only 1 of the keys "Return"
@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;
}
< /code>
output: < /p>
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
Как получить пару значений ключей из XML Document Java ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как создать дочернюю пару ключей из главной пары ключей с помощью модуля Pycryptodome?
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-