2014-01-12 2 views
-7

방금 ​​정규식이 무엇인지 파악하기 시작했지만 실제로 시간이 제한되었습니다!Regexp. xml 문서에서 값을 추출하는 방법

xml의 문자열은 <myid>1234</myid>과 같습니다. 현재 xml은 txt이며 XML 문서입니다.

<myid> 태그에서 1234를 추출하는 패턴은 어떻게 만들 수 있습니까? 정말은 다음과 같습니다 경우

+4

대신 XML 파서를 사용하십시오. XPath 표현식은 사용 사례에 맞게 작성하기가 쉽습니다. – chrylis

+1

값을 얻으려면 XPath를 사용합니다. regexp를 사용하여 xml 내용에서 값을 가져 오는 것은 그리 좋지 않습니다. – Streamside

+0

XML 문서 형식이 잘못되었습니다. 나는 & 서명을했기 때문에 나는 그것을 파싱 할 수 없다. – user3108395

답변

1

:

Matcher match = Pattern.compile("<myid>(\d+)</myid>").matcher(str); 

을 ... 그리고 그 값을 받고, 반복적으로 정규 표현을 사용

<myid>1234</myid> 

... 당신이 이런 식으로 추출 할 수 있습니다 캡처 그룹에서.

이유가 있습니다. 누구나 적절한 파서를 사용하라는 메시지가 표시되는 이유는입니다. 위의 경우 실패 할 수있는 여러 가지 방법이 있습니다. 부적합하게 일치하는 경우와 일치해야하는 경우 모두 실패합니다.

올바른 해결책은 XML을 유효하게 만든 다음 구문 분석하고 XPath 또는 유사하게 값을 읽는 것입니다.

잘못된 XML을 보내야하는 툴이 있다면 툴을 교체해야합니다. 더 많은 가능성이 있지만 오해입니다.

+0

감사합니다. T.J. Crowder. 이해하지만이게 어떻게 작동하는지. – user3108395

관련 문제