如何將元素和屬性的所有值轉換爲xml地圖? 有沒有一些圖書館可以做到這一點?我發現庫xStream,但我不知道如何配置它。如何將字符串xml轉換爲地圖<String,String>
1
A
回答
5
我只是想這一點:
public static Map<String, String> convertNodesFromXml(String xml) throws Exception {
InputStream is = new ByteArrayInputStream(xml.getBytes());
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(is);
return createMap(document.getDocumentElement());
}
public static Map<String, String> createMap(Node node) {
Map<String, String> map = new HashMap<String, String>();
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;
}
+0
也許它以某種方式工作,但不要忘記更正:Node item = currentNode.getAttributes()。item(j); (j而不是i)。它也不收集相同的標籤,可以在http://stackoverflow.com/a/31245219/2914140看到(該解決方案也有錯誤)。 – CoolMind
0
嘗試下面的代碼:
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("C://logs//XML.xml");
NodeList nodeList = doc.getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++) {
Node textChild = nodeList.item(i);
NodeList childNodes = textChild.getChildNodes();
for (int j = 0; j < childNodes.getLength(); j++) {
Node grantChild = childNodes.item(j);
NodeList grantChildNodes = grantChild.getChildNodes();
for (int k = 0; k < grantChildNodes.getLength(); k++) {
if(!StrUtl.isEmptyTrimmed(grantChildNodes.item(k).getTextContent())) {
Map<String, String> map = new HashMap<String, String>();
map.put(grantChildNodes.item(k).getNodeName() , grantChildNodes.item(k).getTextContent());
System.out.println(map);
}
}
}
}
}catch (Exception e){
e.printStackTrace();
}
0
Underscore-lodash庫可以HashMap中轉換爲XML,反之亦然。
代碼例如:
import com.github.underscore.lodash.$;
import java.util.*;
public class Main {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
map.put("name", "chris");
map.put("island", "faranga");
System.out.println($.toXml(map));
Map<String, Object> newMap = (Map<String, Object>) $.fromXml($.toXml(map));
System.out.println(newMap.get("name"));
}
}
相關問題
- 1. 如何將xml字符串轉換爲映射<String,String>
- 2. 轉換地圖<String,字符串>地圖<字符串,對象>
- 3. 如何使用Google集合將地圖<字符串,字符串>轉換爲列表<String>
- 4. 如何將Json字符串轉換爲List <HashMap <String,String >>?
- 5. 如何將字符串轉換爲SortedMap <String,SortedMap <String,Object >>?
- 6. 我如何將IQueryable <string>轉換爲字符串數組?
- 7. 如何將IQueryable <string>轉換爲字符串?
- 8. 如何將字符串轉換爲ArrayList的<String>
- 9. Apache Hive:將Map <string,string>轉換爲json字符串?
- 10. 的Java 8轉換列表<地圖<String,字符串>地圖<字符串,地圖<String,字符串>>
- 11. 如何將字符串轉換爲字符串數組String()?
- 12. 如何將字符串轉換爲xml
- 13. 類型轉換地圖<String,字符串>地圖<對象,對象>
- 14. 的Java轉換地圖<字符串,對象>到地圖<String, ?>
- 15. 如何將Dictionary <string,string>轉換爲LINQ中的屬性字符串?
- 16. 如何使用System.Json將Dictionary <string,string>轉換爲json字符串?
- 17. 轉換字符串[] []爲String []
- 18. 轉換地圖<字符串,字符串>爲JSON
- 19. 元帥地圖<String,字符串>爲.xml
- 20. java-如何將一個ArrayList <ArrayList <String>>轉換爲字符串[]] []
- 21. 將地圖<字符串,對象>轉換爲地圖<字符串,列表<Object>>
- 22. 如何將轉換爲字符串值的[[String]]轉換回原始類型[[String]]?
- 23. 將數組<string>轉換爲字符串pyspark數據框
- 24. 將字符串轉換爲列表<string>在一行中?
- 25. 使用java將字符串[]轉換爲Arraylist <String>
- 26. 將字符串數組轉換爲列表<string>
- 27. 將char轉換爲堆棧的字符串<string>
- 28. 將列表<String>轉換爲Java中的字符串[]
- 29. 將字符串轉換爲ArrayList <String> in Java
- 30. 將字符串[]轉換爲ObservableCollection <string>
http://stackoverflow.com/questions/373833/best-xml-parser-for-java – assylias
可能dublicate http://stackoverflow.com/questions/1537207/how -to-convert-xml-to-java-util-map-and-vice-versa – isvforall
此外,你可能想查看http://stackoverflow.com/questions/8296126/extract-xml-information-to-listmap-使用-xpath,因爲它提供了一個很好的示例。 – Ewald