2014-04-14 2 views
1

У меня есть следующая строка. Я хочу извлечь строку между двумя словами <cases> and </cases> с использованием Java. Я хочу извлечь строку для создания допустимого xml согласно моему требованию.Извлечь строку между двумя словами в Java

<cases><Final-Results><row> 
      <CRDATTIM>2014-03-26-05.22.22.339840</CRDATTIM> 
      <RECORDCD>C</RECORDCD> 
      <CRNODE>01</CRNODE> 
      <CKEY>2014-03-26-05.22.22.339840C01</CKEY> 
      <STATCD>CREATED</STATCD> 
      <UNITCD>CSMHCQA</UNITCD> 
      <WRKTYPE>CALL</WRKTYPE> 
      <issues><row> 
     <IKEY>2014-03-26-05.22.22.193840T01</IKEY> 
     <PRTY>999</PRTY> 
     <ISSUEID>20140326-155047-DT81694</ISSUEID> 
     <SUBJECT>Group</SUBJECT> 
     <ISSTYP>GROUP</ISSTYP> 
     <ISSCAT1>GROUP INQUIRY</ISSCAT1> 
    </row></issues></row></Final-Results></cases><?xml version="1.0" encoding="UTF-8"?> 
    <response> 
     <FOLDERID>COMM*H</FOLDERID> 
    </response> 

Я пробовал использовать следующий код. Но это не работает для меня.

Pattern pattern = Pattern.compile("<cases>(.*?)</cases>"); 
Matcher matcher = pattern.matcher(string); 
while (matcher.find()) { 
    System.out.println(matcher.group(1)); 
} 

Имею ли я какую-либо ошибку здесь? Могли бы, пожалуйста, поделиться своей идеей, чтобы решить мою проблему? Спасибо заранее.

+2

Пожалуйста, не анализируйте xml, используя шаблон соответствия. Есть почти на всех мыслимых языках, которые имеют дело с xml. Используйте их. Это сделает вашу жизнь намного легче. –

+0

Согласен. Но моя строка xml не является хорошо сформированной. Поэтому я думаю об извлечении контента с использованием сопоставления шаблонов. –

+0

true, но он выглядит как действительный фрагмент xml, возможно, http://stackoverflow.com/questions/729621/convert-string-xml-fragment-to-document-node-in-java может дать вам некоторые идеи. –

ответ

4

попробуйте изменить:

Pattern pattern = Pattern.compile("<cases>(.*?)</cases>"); 

в

Pattern pattern = Pattern.compile("<cases>(.*?)</cases>", Pattern.DOTALL); 

Кстати, если это хорошо сформированный XML-документ, использовать анализатор вместо регулярных выражений, чтобы справиться с этим.

+0

Работал отлично! Благодарю Кента! –

Смежные вопросы