종료 태그가없는 곳에 종료 html 태그를 삽입하는 방법은 무엇입니까?누락 된 태그에 대한 종료 태그 삽입 html로
<tr>
<td>Index No.</td><td>Name</td>
<tr>
<td>1</td><td>Harikrishna</td>
경우 두/TR "등의 적절한 결말 태그를 삽입하는 방법이 누락 된 태그를 어디에 어떻게 검색이 경우 /tr".Now을하고"tags.That입니다 끝없는처럼 ".
종료 태그가없는 곳에 종료 html 태그를 삽입하는 방법은 무엇입니까?누락 된 태그에 대한 종료 태그 삽입 html로
<tr>
<td>Index No.</td><td>Name</td>
<tr>
<td>1</td><td>Harikrishna</td>
경우 두/TR "등의 적절한 결말 태그를 삽입하는 방법이 누락 된 태그를 어디에 어떻게 검색이 경우 /tr".Now을하고"tags.That입니다 끝없는처럼 ".
HTML Tidy을보고 필요할 때 사용할 수 있는지 확인하십시오.
가능한 모든 경우를 처리하려는 경우 수행해야 할 작업입니다. HTML은 일반 언어가 아닙니다. IMHO 당신은 소스에서 문제를 해결하려고 노력해야합니다. 처음에는 잘못된 HTML을 얻었습니다.
@Darin Dimitro, 무엇 이럴? – Harikrishna
@Harikrishna, 내 겸손한 견해에서. –
HTML 애자 팩을 사용하여 HTML 컨텐트를 파싱합니다. 그리고 html 파일에 누락 된 태그가 있으면 파싱이 올바르게 수행되지 않습니다. 어쨌든 결말 태그가없는 곳에서 끝 태그를 삽입하려면 HTML Agility Pack을 사용하십시오. – Harikrishna
위의 내용에 대해서는 언급 할 수 없으므로 여기에서 유의하겠습니다. HTML Tidy을 HTML 조각 정리에도 사용할 수 있습니다. 여기에 예를 참조 :
이 http://www.php.net/manual/en/tidy.examples.basic.php
HTML 지저분하게하는 또 다른 방법은 정규 표현식로 출력 코드를 청소하는 것입니다 - 나는 아래의 예를 제공합니다. 그러나 이것이 처리 측면에서 더 빠르지 만, HTML Tidy와 같이 보편적이지는 않습니다 (유지 보수 측면에서).
코드
<?php
$html = "
<table>
<tr class=\"lorem\">
<td>Index No.</td>
<td>Name</td>
<tr>
<td>0</td>
<td>FooBaz</td>
<tr>
<td>1</td>
<td>Harikrishna</td>
<tr class=\"ipsum\">
<td>2</td>
<td>Foo</td>
</tr>
<tr>
<td>3</td>
<td>Bar</td>
</table>
";
// regex magic
$start_cond = "<tr(?:\s[^>]*)?>";
$end_cond = "(?:{$start_cond}|<\/table>)";
$row_contents = "(?:(?!{$end_cond}).)*";
// first remove all </tr> tags
$xhtml = preg_replace("/<\/tr>/ism", "", $html);
// now re-add </tr> tags where appropriate
$xhtml = preg_replace("/({$start_cond})({$row_contents})/ism", "$1$2</tr>\n", $xhtml);
// ignore: just for writing comparision output
echo "<h2>Before:</h2>"; show_count($html);
echo "<h2>After</h2>"; show_count($xhtml);
function cmp($patt,$html) {
$count = preg_match_all("/{$patt}/ism", $html, $matches);
return htmlentities("\n{$count} x {$patt}");
}
function show_count($html) {
echo "<pre>"
. cmp("<tr(\s[^>]*)?>",$html)
. cmp("<\/tr>",$html)
. "</pre>";
}
?>
출력
Before:
5 x <tr(\s[^>]*)?>
1 x <\/tr>
After
5 x <tr(\s[^>]*)?>
5 x <\/tr>
@MicE .. C#에서 이것을 수행하는 코드를 알고 있습니까? – Harikrishna
죄송 합니다만, 나는 그렇지 않다고 두려워합니다. 위의 예제는 PHP로되어 있지만 정규 표현식과이를 수행하기위한 논리는 언어가 일반적으로 사용되는 PCRE 구문 (PCRE = Perl Compatible Regular Expressions)을 지원한다면 언어에 관계없이 거의 동일해야합니다. – MicE
@Dav, 끝 태그가없는 곳에 끝 태그를 삽입하는 코드를 작성하고 싶습니다. – Harikrishna
@ nobugz, HTML Tidy는 HTML 소스를 다시 생성 할 수있는 도구 또는 소스 코드입니다. 그것이 툴이라면 누락 된 곳에 엔딩 태그를 삽입하기 위해 어떤 코드를 작성할 수 있습니까? – Harikrishna