0

htmlタグなしでhtmlページのソースコードを取得するには? 例えば:

<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<meta http-equiv="content-language" content="hu"/> 
<title>this is the page title</title>
<meta name="description" content="this is the description" />
<meta name="keywords" content="k1, k2, k3, k4" />
start the body content
<!-- <div>this is comment</div> -->
<a href="open.php" title="this is title attribute">open</a>
End now one noframes tag.
<noframes><span>text</span></noframes>
<select name="select" id="select"><option>ttttt</option></select>
<div class="robots-nocontent"><span>something</span></div>
<img src="url.png" alt="this is alt attribute" />

この結果が必要です:

this is the page title this is the description k1, k2, k3, k4 start the body content this is title attribute open End now one noframes tag. text ttttt something this is alt attribute

タイトルと alt 属性も必要です。考え?

4

3 に答える 3

0

私の解決策はもう少し複雑ですが、それは私にとってはうまくいきました。

XHTMLを使用していることが確実な場合は、コードをXMLと見なすことができます(ただし、すべてを適切にラップする必要があります)。

次に、XSLTを使用して、必要なことを実行するいくつかの基本的なテンプレートを定義できます。

于 2010-03-19T20:47:43.813 に答える
0

これは、自動化された方法では実行できません。PHP は、省略したいノード属性を認識できません。ノードのコンテンツをいつ使用するかを定義して、マップにフィードできるすべての属性とテキストノードを反復処理するコードを作成するか、XPath で必要なものを 1 つずつ選択する必要がありました。

別の方法は、XMLReader を使用することです。ドキュメント全体を繰り返し処理し、要素名のコールバックを定義できます。このようにして、どの要素に対して何を行うかを定義できます。見る

于 2010-03-19T17:11:45.287 に答える
0

正規表現でそれを行うことができます。

$regex = '/\<.\>/';

その周りの何かを削除するための非常に簡単な開始<です。ただし、これを行うには、コードをテキストに変換する 、またはその他の関数>として HTML を取り込む必要があります。file_get_contents()

補遺:

個々の属性も取得したい場合は、より複雑な正規表現を記述してそのテキストを取得する必要があります。例えば:

$regex2 = '/\<.(?<=(title))(\=\").(?=\")/';

タイトルの前に他に一致する式がないと仮定して、<との間のテキストを引き出します (私はまだ RegEx を学んでいると思います) 。title="繰り返しますが、これはかなり複雑な正規表現プロセスになります。

于 2010-03-19T17:19:55.870 に答える