У меня есть пример XML Я хочу, чтобы разобратькак разобрать xml на hashmap?
<?xml version="1.0" encoding="utf-8"?>
<Details>
<detail-a>
<detail> attribute 1 of detail a </detail>
<detail> attribute 2 of detail a </detail>
<detail> attribute 3 of detail a </detail>
</detail-a>
<detail-b>
<detail> attribute 1 of detail b </detail>
<detail> attribute 2 of detail b </detail>
</detail-b>
</Details>
Я хотел бы от этого XML, чтобы написать метод, который будет разбирать его HashMap, что ключ является строкой, а значение представляет собой список строк ,
, например: ключ «детализируют» значение = { «атрибут 1 детализации а», «атрибут 2 детализации а», «атрибут 3 детали А»}
и так далее ..
Каков наилучший способ сделать это? потому что я запутался: \
Я получил это далеко, чтобы попытаться напечатать деталь-а и детальность-б, но я получаю пустой ...
public static void main(String[] args) {
// TODO Auto-generated method stub
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try {
builder = factory.newDocumentBuilder();
File f= new File("src/Details.xml");
Document doc=builder.parse(f);
Element root=doc.getDocumentElement();
NodeList children=root.getChildNodes();
for(int i=0;i<children.getLength();i++)
{
Node child=children.item(i);
if (child instanceof Element)
{
Element childElement=(Element) child;
Text textNode=(Text)childElement.getFirstChild();
String text=textNode.getData().trim();
System.out.println(text);
}
}
} catch (ParserConfigurationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Вы попробовали что-нибудь? –
XStream будет полезен – sol4me
вы можете преобразовать xml в строку, а затем вы можете сохранить его в hashmap –