我正在尝试从用户的输入值填充xml文件。用户将为2个条目提供一个Key和一个值。我有一个模型类,如下所示:
public class Person
{ private HashMap<String, String> hash = new HashMap<String, String>();
public Person()
{ }
public Person(String key, String val)
{ hash.put(key, val); }
public String GetFirstName(String k)
{ return hash.get(k); }
}
如何从类的这个对象制作一个xml?以及如何从密钥中检索xml中的值?
我想要像这样的xml:
<AllEntries>
<entry key="key1">value1</entry>
<entry key="key2">value2</entry>
<entry key="key3">value3</entry>
</AllEntries>
答案 0 :(得分:0)
您需要使用XML解析器,如Java DOM或SAX。下面的示例是Java DOM,它向您展示如何遍历HashMap
并将您的条目添加到your_xml.xml
。
File xmlFile = new File("your_xml.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
for (Map.Entry<String, String> m : hash.entrySet()) {
// Create your entry element and set it's value
Element entry = doc.createElement("entry");
entry.setTextContent(m.getValue());
// Create an attribute, set it's value and add the attribute to your entry
Attr attr = doc.createAttribute("key");
attr.setValue(m.getKey());
entry.setAttributeNode(attr);
// Append your entry to the root element
doc.getDocumentElement().appendChild(entry);
}
然后您只需将文档保存在原始文件上即可。在您的Document
被修改后,您可能希望convert it to a String解析为您选择的OutputStream
进行保存。