2014-01-24 108 views
0

我都存储在一个字符串以下XML拆分XML字符串在Java中分为3个部分

<MessageHeader> 
<MessageThreadId>201401140942060</MessageThreadId> 
</MessageHeader> 
<MessageNotificationPeriod> 
<StartDate>2013-11-01T00:00:00.000000</StartDate> 
<EndDate>2013-12-01T00:00:00.000000</EndDate> 
</MessageNotificationPeriod> 
<SalesReport> 
<SalesByTerritory> 
<TerritoryCode>US</TerritoryCode> 
</SalesByTerritory> 
</SalesByCommercialModel> 
</SalesReport> 

我想将字符串分割成3个部分,以便它可以在文件我会在不同的地方进行打印正在创造。我想要</MessageNotificationPeriod>结束第一部分,</TerritoryCode>结束第二部分,其余部分将在第三个新字符串中结束。我试过使用String.split(),但它删除了我分裂的字符串。

+5

您应该考虑使用XML解析器而不是字符串拆分,请检查http://stackoverflow.com/questions/373833/best-xml-parser-for-java – krampstudio

+0

有这种方法创建文件的技术原因是基于数据(SalesByTerritory)来自数据库。 – user1712258

回答

-1

,您是否试图串(开始,结束)方法

1

如果你不想来解析XML,它是很容易使用正则表达式:

Pattern pattern = Pattern.compile(
    "^(.*</MessageNotificationPeriod>)(.*</TerritoryCode>)(.*)$" 
); 
Matcher matcher = pattern.matcher(xmlString); 
if (!matcher.matches()) { 
    throw new IllegalStateException(); 
} 
String part1 = matcher.group(1); 
String part2 = matcher.group(2); 
String part3 = matcher.group(3); 

capturing groups tutorial

相关问题