У меня есть следующая строка. Я хочу извлечь строку между двумя словами <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));
}
Имею ли я какую-либо ошибку здесь? Могли бы, пожалуйста, поделиться своей идеей, чтобы решить мою проблему? Спасибо заранее.
Пожалуйста, не анализируйте xml, используя шаблон соответствия. Есть почти на всех мыслимых языках, которые имеют дело с xml. Используйте их. Это сделает вашу жизнь намного легче. –
Согласен. Но моя строка xml не является хорошо сформированной. Поэтому я думаю об извлечении контента с использованием сопоставления шаблонов. –
true, но он выглядит как действительный фрагмент xml, возможно, http://stackoverflow.com/questions/729621/convert-string-xml-fragment-to-document-node-in-java может дать вам некоторые идеи. –