所以有這個類org.apache.commons.lang3.text稱爲StrSubstitutor它可以在一張地圖這樣的:爪哇 - 從字符串使用模板提取鍵值對
Map<String, String> params = new HashMap<String, String>();
params.put("name","Vivek");
params.put("id","900");
params.put("somethingelse","blah");
和一個模板字符串是這樣的:
<data>
<id>${id}</id>
<name>${name}</name>
<something>${somethingelse}</something>
</data>
產生一個輸出字符串是這樣的:
<data>
<id>900</id>
<name>Vivek</name>
<something>blah</something>
</data>
我要的是相反的。有沒有一種方法可以讓輸出字符串和模板使用模板變量作爲鍵和字符串中相應的值作爲值來填充地圖?
PS - 我將使用的字符串不一定總是XML。這僅僅是一個例子。
編輯:我覺得有些困惑,變量名和標籤名稱是一樣的。標籤只是說明性的,與問題無關。這是我關心的$ {}中的變量。我添加了另一個標籤來顯示我的意思。
您是否知道可能的標籤列表(如「id」,「name」等),或者您需要解決未知標籤的問題? – c0der
@ c0der標籤無關緊要。如果你的意思是變量 - 是的,如果它是未知的,它會更好。基本上我想解析出任何包含在$ {} –
中的任何東西如果你想要一個通用和高效的解決方案,你將不得不解析這個結構。這些簡單的例子可以通過手寫解析器來解析。如果這個例子是一個更大的規範的一部分,你可能更好考慮一個解析器生成器。 – CoronA