Possible Duplicate:
xPath insert before and after - With DOM and PHP
Ben iyi güzel doğru bir şekilde, bir dize içinde HTML kodu ayrıştırmak gerekiyor.
Wordpress bu gibi görünen bir yapıya sahip bir kenar çubuğu oluşturur.
<div class="sidebar-1">
<ul>
<li id="archives">
<h4>Archives</h4>
<ul>
<li>a href="">Test1</a></li>
<li>a href="">Test2</a></li>
</ul>
</li>
<li id="pages">
<h4>Archives</h4>
<ul>
<li>a href="">Test</a></li>
<li>a href="">Test</a></li>
</ul>
</li>
</ul>
I want to create a <div class="content"> after </h4> and a </div> before the </li> the parent element, in both list sections "archives" and "pages". It should work if more unknown list items are added.
Sonuç böyle olmalı:
<div class="sidebar-1">
<ul>
<li id="archives">
<h4>Archives</h4>
<div class="content">
<ul>
<li>a href="">Test1</a></li>
<li>a href="">Test2</a></li>
</ul>
</div>
</li>
<li id="pages">
<h4>Archives</h4>
<div class="content">
<ul>
<li>a href="">Test</a></li>
<li>a href="">Test</a></li>
</ul>
</div>
</li>
</ul>
Ben bir DOM işlevini yapmaya çalıştı ama ben yaptım ve nasıl bunu yapmak için gerekenleri anlamaya vermedi. Bir dizi h4-etiketleri içinde içeriğini döndürür. Çok yararlı değil.
function add_sidebar_content($html)
{
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DomXPath($dom);
$tag = $dom->getElementsByTagName("h4");
$counter = $tag->length;
for ($i = 0; $i < $counter; $i++)
{
$result = $tag->item($i)->nodeValue;
}
return $result;
}