1
다음 문자열이 있습니다. Java를 사용하여 두 단어 사이의 문자열 <cases> and </cases>
을 추출하고 싶습니다. 내 요구 사항에 따라 올바른 XML을 형성하기 위해 문자열을 추출하고 싶습니다.자바에서 두 단어 사이의 문자열을 추출하십시오.
<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 문서를 사용 파서 대신 정규식 인 경우, BTW
Pattern pattern = Pattern.compile("<cases>(.*?)</cases>");
Pattern pattern = Pattern.compile("<cases>(.*?)</cases>", Pattern.DOTALL);
로 :
패턴 일치를 사용하여 xml을 구문 분석하지 마십시오. 거의 모든 상상할 수있는 언어에서 xml을 다루는 구조가 있습니다. 그것들을 사용하십시오. 그것은 당신의 인생을 훨씬 쉽게 만들 것입니다. –
나는 동의한다. 하지만 내 XML 문자열은 잘 형성된 문자열이 아닙니다. 그래서 패턴 일치를 사용하여 콘텐츠를 추출 할 생각입니다. –
사실이지만 유효한 XML 조각처럼 보입니다. 아마도 http://stackoverflow.com/questions/729621/convert-string-xml-fragment-to-document-node-in-java에서 아이디어를 얻을 수 있습니다. –