0
저는 Regexes에 대해 더 많은 것을 배우기 위해 간단하고 가벼운 XML 파서 (주말 프로젝트)를 작업했습니다. 나는 애트리뷰트와 엘리먼트에서 데이터를 얻을 수 있었지만 태그를 분리하는 데 어려움을 겪고있다. 이것은 내가 가지고있는 것입니다 :Java Regex and XML
CharSequence inputStr = "<a>test</a>abc<b1>test2</b1>abc1";
String patternStr = openTag+"(.*?)"+closeTag;
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(inputStr);
StringBuffer buf = new StringBuffer();
boolean found = false;
while ((found = matcher.find())) {
String replaceStr = matcher.group();
matcher.appendReplacement(buf, "found tag (" + replaceStr + ")");
}
matcher.appendTail(buf);
String result = buf.toString();
System.out.println(result);
Output: found tag (<a>test</a>abc<b1>test2</b1>)abc1
전체 태그가 아닌 모든 태그에서 'found tag'를 끝내야합니다. 내가 그걸 할 수있는 어떤 방법이라도? 감사.
수사학 질문 : 한 문장으로 왜 XML에서 정규 표현식을 사용하려고하는지 설명 할 수 있습니까? – Tomalak
@Tomalak 정말 다른 것이 효과가 있을지 모르겠다. 너는 무엇을 제안 하겠는가? – user1681891
XML 파서 만 XML에서 사용해야합니다. [기본 제공 DOM API] (http://stackoverflow.com/q/33262/18771) 또는 [XOM과 같은 타사 라이브러리] (http://www.xom.nu/)를 사용할 수 있습니다. 배우고 사용하기 쉽도록되어 있습니다. 또 다른 질문 [당신이 가지고있는 옵션에 대해 논의합니다] (http://stackoverflow.com/q/373833/18771). 물론 XML/HMTL에서 정규식을 사용하지 말아야하는 이유에 대해 설명하는 StackOverflow에 대한 가장 높은 투표 응답에 의무 링크를 추가해야합니다 (http://stackoverflow.com/q/1732348/18771). – Tomalak