簡體   English   中英

如何將地圖列表轉換為xml

[英]How to convert List of maps to xml

我正在搜索Api將地圖列表轉換為Xml。

我不想使用任何基於注釋的解析器,如JaxB。 有沒有方便的圖書館這樣做?

List<Map<String, Object>> myList = new ArrayList(); 

Map<String,String> map1 = new HashMap<String,String();
map.put("name","mike");
map.put("surname","smith");

Map<String,String> map2 = new HashMap<String,String();
map.put("name","bob");
map.put("surname","smith");

myList.add(map1);
myList.add(map2);

我想將它保存到這樣的文件:

<map1>
  <name>mike</name>
  <surname>smith</surname>
</map1>
<map2>
  <name>bob</name>
  <surname>smith</surname>
</map2>

首先,它是一個相當差的XML設計。 為地圖提供不同的名稱(map1,map2等)幾乎肯定會使處理XML變得更加困難。 但也許你對設計沒有任何控制權。

接下來的一點是,要從Java生成此XML,我通常不會選擇從構建映射列表開始。 但同樣,也許你對輸入的形式沒有任何控制。

如果您正在使用Saxon,則可以使用靜態方法XdmMap.makeMap(Map)將每個Map轉換為XdmMap ; 由於XdmMapXdmItem然后可以構造圖的序列作為XdmValue使用構造XdmValue(Iterable<? extends XdmItem>) 然后,您可以將此XdmValue作為參數(名為list-of-maps )傳遞給一個簡單的樣式表

<xsl:param name="list-of-maps" as="map(xs:string, xs:string)*"/>
<xsl:template name="xsl:initial-template">
  <xsl:for-each select="$list-of-maps">
    <xsl:element name="map{position()}">
      <name>{?name}</name>
      <surname>{?surname}</surname>
    </xsl:element>
  </xsl:for-each>
</xsl:template>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM