2012-06-22 2 views
1

현재 RSS 피드가있는 XML 문서로 작업하고 있습니다. 클래스 이름이 "feedflare"인 div 태그가 발견되면 코드가 전체 DIV를 제거하도록 파싱하고 싶습니다.특정 클래스 이름이 포함 된 DIV를 텍스트 파일에서 제거

"HTML 편집기 오류"및 기타 관련성이없는 데이터로 인해 검색이 오염되어있어이 작업을 수행하는 예제를 찾을 수 없습니다.

내 목표를 달성하는 데 방법을 공유 할만큼 친절한 사람이 있습니까?

나는 그것을 피할 수 있다면 HtmlAgilityPack을 사용하고 싶지 않습니다.

로드 XML 요소를 분석하고, 링크, 제목, 설명을 골라 :

이 내 과정이다. 그런 다음 HTML로 저장하고 (태그를 프로그래밍 방식으로 추가하여 웹 페이지를 작성) 모든 태그가 추가되면 결과 "HTML 텍스트"를 구문 분석하고 성가신 DIV 태그를 제거합니다.

"string HTML = textBox1.text"로 가정 해 봅시다. 여기서 textBox1은 기본 XML 문서를 구문 분석 한 후 결과 HTML을 붙여 넣는 위치입니다.

그러면 textBox1.text의 내용을 반복하고 "feedflare"라는 div 태그 만 제거합니다 (아래 참조).

<div class="feedflare"> 
<a href="http://feeds.gawker.com/~ff/kotaku/full?a=lB-zYAGjzDU:1zqeSgzxt90:yIl2AUoC8zA"> 
<img src="http://feeds.feedburner.com/~ff/kotaku/full?d=yIl2AUoC8zA" border="0"></img></a> 
<a href="http://feeds.gawker.com/~ff/kotaku/full?a=lB-zYAGjzDU:1zqeSgzxt90:H0mrP-F8Qgo"> 
<img src="http://feeds.feedburner.com/~ff/kotaku/full?d=H0mrP-F8Qgo" border="0"></img></a> 
<a href="http://feeds.gawker.com/~ff/kotaku/full?a=lB-zYAGjzDU:1zqeSgzxt90:D7DqB2pKExk"> 
<img src="http://feeds.feedburner.com/~ff/kotaku/full?i=lB-zYAGjzDU:1zqeSgzxt90:D7DqB2pKExk" border="0"></img></a> 
<a href="http://feeds.gawker.com/~ff/kotaku/full?a=lB-zYAGjzDU:1zqeSgzxt90:V_sGLiPBpWU"> 
<img src="http://feeds.feedburner.com/~ff/kotaku/full?i=lB-zYAGjzDU:1zqeSgzxt90:V_sGLiPBpWU" border="0"></img></a> 
</div> 

감사합니다. this xml library를 사용

+1

'div' 태그 또는'

' and '
'사이의 모든 것을 제거 하시겠습니까? – harry180

+2

@ harry180 게시물의 첫 번째 단락을 읽으면 '코드가 전체 DIV를 제거합니다.' –

+0

왜 HtmlAgilityPack을 사용하지 않는지 설명하는 것이 도움이 될 것입니다. 완전한 예제가 있다면 도움이 될 것입니다. – NotMe

답변

0

는 수행

XElement root = XElement.Load(file); // or .Parse(string); 
XElement div = root.XPathElement("//div[@class={0}]", "feedflare"); 
div.Remove(); 
root.Save(file); // or string = root.ToString(); 
+0

답장을 보내 주셔서 감사합니다. 그러나 NULL 예외가 발생했습니다 (System.NullReferenceException 처리되지 않았습니다. 메시지 = 개체 참조가 개체의 인스턴스로 설정되어 있지 않습니다.)이 코드를 실행하는 'code1 XElement root = XElement.Parse (textBox1.Text); XElement div = root.XPathElement ("// div {@ class = {0}]", "feedflare"); div.Remove(); <--- 여기에 던져진 예외 string test = root.ToString(); MessageBox.Show (test);'code1 – Meh

+1

어디에서 전체 XML을 테스트 할 수 있습니까? –

+0

xml 파일에 XML 스 니펫을 추가했는데 그대로 사용합니다. –

0

System.Xml.XmlDocument d = new System.Xml.XmlDocument(); 
    d.LoadXml(Your_XML_as_String); 
    foreach(System.Xml.XmlNode n in d.GetElementsByTagName("div")) 
    d.RemoveChild(n); 

을 시도하고 새로운 XML을 검색 할 수 d.OuterXml를 사용합니다.

관련 문제