Java 是否可以将xml字符串拆分为数组中的元素?
假设我有xml字符串Java 是否可以将xml字符串拆分为数组中的元素?,java,Java,假设我有xml字符串 String str="<loan><account>123456</account><name>RamaKrishna</name><principle>1000</principle><issue_date>Jan-1-2013</issue_date><interest_rate>12%</interest_rate></loan&
String str="<loan><account>123456</account><name>RamaKrishna</name><principle>1000</principle><issue_date>Jan-1-2013</issue_date><interest_rate>12%</interest_rate></loan>"
String str=“123456RamaKrishna1000Jan-1-201312%”
我的输出应该是
arr = ["<account>123456</account>","<name>RamaKrishna</name>","<principle>1000</principle>","<issue_date>Jan-1-2013</issue_date>","<interest_rate>12%</interest_rate>"]
arr=[“123456”、“罗摩克里希纳”、“1000”、“2013年1月1日”、“12%”]
您可以尝试:
字符串[]split=str.split((?=(?))”
如果你想保持标签完好无损。
?=应保留您的标签,但是单独删除最后一个loan标签,这将在不嵌套的情况下工作。如果不保留标记,则可以执行以下操作:
字符串[]split=s.split(“”)
这个答案是静态的(只是回答您的问题),就像@Vikrant Kashyap提到的,XML文档是更通用的解决方案的更好选择
public static void main(String[] args) {
//Orginal string, remove the loan tags
String str="<loan><account>123456</account><name>RamaKrishna</name><principle>1000</principle><issue_date>Jan-1-2013</issue_date><interest_rate>12%</interest_rate></loan>";
str = str.replace("<loan>", "");
str = str.replace("</loan>", "");
//Create an array of the string
List<Character> list = new ArrayList<Character>();
for(char c : str.toCharArray()) {
list.add(c);
}
//Result
ArrayList<String> tmp = XmlComma(list);
}
publicstaticvoidmain(字符串[]args){
//原始字符串,删除贷款标签
String str=“123456罗摩克里希纳1000JAN-1-201312%”;
str=str.replace(“,”);
str=str.replace(“,”);
//创建字符串的数组
列表=新的ArrayList();
for(字符c:str.toCharArray()){
增加(c)项;
}
//结果
ArrayList tmp=xmlcoma(列表);
}
以及xmlcoma方法:
public static ArrayList<String> XmlComma(List<Character> input) {
ArrayList<String> result = new ArrayList<String>();
String output = "";
for(int i = 0; i < input.size(); i++)
{
if(i != (input.size() -1))
{
if(!input.get(i).equals(','))
{
output += input.get(i);
}
if(input.get(i).equals('>') && input.get(i+1).equals('<'))
{
result.add(output);
output = "";
}
}
else
{
output += '>';
result.add(output);
}
}
return result;
}
publicstaticarraylistxmlcoma(列表输入){
ArrayList结果=新建ArrayList();
字符串输出=”;
对于(int i=0;i')和&input.get(i+1).equals('>');
结果。添加(输出);
}
}
返回结果;
}
您必须编写自己的实现,我想您可以使用JAXB
从XML字符串创建一个对象。该对象应该包含帐户、名称等属性。然后从该对象可以获得这些属性的不同值并相应地准备数组。最好使用XML文档nt
读卡器是更好的选择。