【问题标题】:Split XML String in Java into 3 parts将 Java 中的 XML 字符串拆分为 3 部分
【发布时间】:2014-01-24 11:19:51
【问题描述】:

我将以下 XML 存储在字符串中

<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 个部分,以便可以在我将创建的文件中的不同位置打印它。我希望&lt;/MessageNotificationPeriod&gt; 结束第一部分,&lt;/TerritoryCode&gt; 结束第二部分,其余部分在第三个新字符串中。我尝试使用 String.split() 但它删除了我要拆分的字符串。

【问题讨论】:

标签: java xml string split


【解决方案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

【讨论】:

    【解决方案2】:

    你有没有尝试 subString(start, end) 方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-03
      • 2017-04-29
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多