HTML のブロックがあり、特定のノードと子ノード (たとえば下のブロック) の正確な HTML コンテンツを取得したい場合、コンテンツまたはDOM Parsing<ul>
のようなものを使用preg_match
または解析する必要がありますか?
入力
<html>
<head>
</head>
<body>
<h2>List</h2>
<ul class="my-list" id="my-list">
<li class="item first">item1</li>
<li class="item second">item2</li>
<li class="item third">item3</li>
</ul>
</body>
</html>
望ましい出力
<ul class="my-list" id="my-list">
<li class="item first">item1</li>
<li class="item second">item2</li>
<li class="item third">item3</li>
</ul>
ご覧のとおり、すべての属性 (クラス、ID など) を保持したいと考えています。
DOM
構文解析を使用すると、これらの属性 ( ) のすべてにアクセスできることはわかっています$items->item($i)->getAttribute('class')
が、DOM は、手動でループして HTML を構築することなく、元のコードの一部だけを簡単に (そして自動的に) 再構築できますか? (私は持っていることを知っDOM
ていますがecho $DOM->saveXML()
、それはページ全体のためのものだと思います.
正規表現と PHP を使用してこれをかなり簡単に達成する方法は知っていますが、それは良い習慣ではないと考えています。
これは jQuery を使用するととても簡単です。
jQuery('ul').clone()
PHPで同じことを達成するにはどうすればよいですか? (リモート HTML を取得し、DOM を使用してそのスライスを取得し、再度 HTML として出力します)