2011-11-21 2 views
0
<ul class="uinfo2"><li class="uname2">ruo</li> 
<ul class="uinfo2"><li class="uname"><b>Oinsen</b></li> 

파일에 위의 HTML 행이 포함되어 있으면 전체 소스 코드에서 굵은 태그를 바꾸려고합니다.태그를 텍스트 파일의 공백으로 대체하는 방법은 무엇입니까?

+3

여기에 묻는 내용이 명확하지 않습니다. * "전체 소스 코드에서 굵은 태그를 바꾸고 싶습니다"*라는 의미를 자세히 설명해 주시겠습니까? (게시물 아래의 "편집"링크를 클릭하여 자세한 정보를 업데이트하십시오.) –

답변

1

정확하게 이해하면 HTML에서 <b> 개의 태그를 제거 하시겠습니까? 그렇다면, 당신은 jQuery를 사용할 수 있습니다

$('b').contents().unwrap(); 

참조 : Remove a HTML tag but keep the innerHtml

+0

내가 틀릴 수도 있지만 jQuery가 여기에 연관되어 있는지 잘 모르겠습니까? OP는 그것을 [Java]라고 태그를 붙였습니다 (태그가 잘못 붙을 수도 있음). –

+0

참. 나는 Javascript가 OP에 대해 생각하기 전에 OP가 원했던 것이라고 생각했다. –

+1

그래도 걱정하지 마십시오. [항상 jQuery 응답을위한 공간이 있습니다!] (http://meta.stackexchange.com/questions/19478/the-many-memes-of-meta/19492#19492) –

0

당신은 정규 표현식을 사용할 수 있지만 HTML과 일치 할 때 그들이 빨리 복잡하게. 파일이 XHTML과 호환된다면 XML로 파일을로드하고 XPath를 사용하여 조건을 충족하는지 확인한 다음 필요에 따라 굵은 태그를 바꾸는 DOM 연산을 사용하는 것이 좋습니다.

+0

(여기서는 Java에서이 작업을 수행한다고 가정합니다. , 그리고 JavaScript가 아닙니다 - 다른 대답이 가정 할 때 ...) – ziesemer

+0

ziesemer - 질문은 원래 작성자가 Java로 태그 지정되어 있으므로 JavaScript 솔루션이 필요하지 않다고 생각합니다. – laz

1

replaceAll 메서드를 사용하여 파일의 모든 내용을 읽고 String (예 : String content;)에 저장합니다.
line.replaceAll ("<b>", "") .replaceAll ("</b >", "");
마지막으로 새 String을 해당 파일에 씁니다.

File file = new File("input.txt"); 
    BufferedReader reader = new BufferedReader(new FileReader(file)); 
    StringBuilder sb = new StringBuilder(); 
    String line = null; 
    while((line=reader.readLine()) != null) 
     sb.append(line.replaceAll("<b>", " ").replaceAll("</b>", " "));   

    FileWriter writer = new FileWriter(file); 
    writer.write(sb.toString()); 
    writer.flush(); 
    writer.close(); 

여기 코드가 있습니다. 이 작업을 수행 할 수 jsoup를 사용

+1

이 예에서는 "0insen"과 같이 묶인 태그는 제거하지만 묶인 내용은 제거하지 않는다고 가정합니다. '그것이 의미하는 바가 아니라는 것을 말하는 것이 아니라, 그 질문의 모호성을 지적하는 것입니다. – Jay

1

: 당신이 제거 원하는 addTags에 전달하지 않는 모든 태그와

import java.io.IOException; 

import nu.xom.ParsingException; 
import nu.xom.ValidityException; 

import org.jsoup.Jsoup; 
import org.jsoup.safety.Whitelist; 
import org.xml.sax.SAXException; 

public class HtmlTest { 
    public static void main(final String[] args) throws SAXException, ValidityException, ParsingException, IOException { 
     String[] tagsToKeep = new String[] {"ul", "li"}; 
     String html = "<ul class=\"uinfo2\"><li class=\"uname2\">ruo</li>\n<ul class=\"uinfo2\"><li class=\"uname\"><b>Oinsen</b></li>"; 
     System.out.println(JSoup.clean(html, Whitelist.none().addTags(tagsToKeep))); 
    } 
} 

초기화 tagsToKeep.

+0

정확히 반대가되지 않습니까? – soulcheck

+0

그래, 그걸 깨달았고 주소는 다음과 같습니다. ( – laz

+0

@soulcheck - 수정되었습니다. – laz

관련 문제