map转xml字符串
时间: 2023-07-19 20:09:07 浏览: 42
以下是将一个Map对象转换为XML字符串的Java代码示例:
```java
import java.util.Map;
import java.util.HashMap;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class MapToXmlConverter {
public static String mapToXml(Map<String, String> map) {
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement("root");
doc.appendChild(rootElement);
for (String key : map.keySet()) {
Element element = doc.createElement(key);
element.appendChild(doc.createTextNode(map.get(key)));
rootElement.appendChild(element);
}
return docToString(doc);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
private static String docToString(Document doc) {
try {
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(doc), new StreamResult(writer));
return writer.getBuffer().toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("name", "John");
map.put("age", "30");
map.put("city", "New York");
String xml = mapToXml(map);
System.out.println(xml);
}
}
```
该代码将一个名为“root”的根元素添加到XML文档中,然后将Map中的每个键值对作为一个子元素添加到根元素下面。最后,使用Transformer将Document对象转换为字符串形式的XML。