Как заменить узел на XPath, из 2-х файлов html

Мне нужно найти (в originalFile.html (//*[@id='divLinkHeader']/ul)) и заменить новым (из otherFile.html) для нового файла (originalFile_WithNewUL.html), сохраненного с помощью новая структура.

<!-- originalFile.html-->
<div class="col-md-4 col-sm-6">
    <div id="headerLog" class="call-5">
        <a href="#">
        <img class="wa333372" src="#">
        </a>
    </div>
    <div id="what5" class="pl-5 subtitle"> 
    </div>
    <div id="divLinkHeader" class="sub">
        <ul class="list-inline list-unstyled"> <!-- <========= DELETE <ul> ?? -->
            <li><a href="#">Line 1</a></li>
            <li><a href="#">Line 2</a></li>
            <li><a href="#">Line 3</a></li>
            <li><a href="#">Line 4</a></li>
        </ul>
    </div>
</div>

А это другой файл

<!-- otherFile.html-->
<ul class="list-inline list-unstyled">
  <li><a href="#">New Line 1</a></li>
  <li><a href="#">New Line 2</a></li>
  <li><a href="#">New Line 3</a></li>
</ul>

Я просто хочу заменить узел на другой, чтобы сохранить файл с именем "originalFile_WithNewUL.html"

И это мой код:

// ---
// Create New originalFile_WithNewUL.html
// ---
$newFile = "originalFile_WithNewUL".".html";
$html = file_get_contents("originalFile".".html");
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

////
////// create the new node from otherFile.html ???
//// $newNode = $dom->createElement('otherFile.html'); ?????
////
////// fetch and replace the old element ?????
//// $oldNode = $xpath->evaluate("//*[@id='divLinkHeader']/ul");
////
//// $results = $xpath->evaluate("//*");
////


$htmlVar = "<!-- WithNewUL -->\n";
$htmlVar = $htmlVar . $dom->saveHTML($results->item(0)) . "\n";
$htmlVar = $htmlVar . "<!-- END WithNewUL -->";


$fid=fopen($newFile,"w+"); 
fwrite($fid, $htmlVar);  
fclose($fid);

Мне нужно создать эту структуру

<div class="col-md-4 col-sm-6">
    <div id="headerLog" class="call-5">
        <a href="#">
        <img class="wa333372" src="#">
        </a>
    </div>
    <div id="what5" class="pl-5 subtitle"> 
    </div>
    <div id="divLinkHeader" class="sub">
        <ul class="list-inline list-unstyled">
            <li><a href="#">New Line 1</a></li>
            <li><a href="#">New Line 2</a></li>
            <li><a href="#">New Line 3</a></li>
        </ul>
    </div>
</div>

person mikel    schedule 01.07.2015    source источник
comment
Я не уверен в том, что вы спрашиваете. Можете уточнить свой вопрос?   -  person Goose    schedule 01.07.2015
comment
Я видел этот код в вашем вопросе. Я все еще не уверен в том, о чем вы спрашиваете. Возможно, это поможет быть менее абстрактным. Какой цели будет служить это программное обеспечение?   -  person Goose    schedule 01.07.2015
comment
Я работаю над задачей очистки URL-адреса. С помощью XPath я мог создавать отдельные элементы (2 файла html), но теперь мне нужно их объединить.   -  person mikel    schedule 01.07.2015
comment
Я нашел это решение, но оно мне не подходит, потому что у меня есть 2 файла html ссылка   -  person mikel    schedule 01.07.2015


Ответы (1)


Это не самый элегантный, но он работает

$str1 = file_get_contents("originalFile".".html");
$str2 = file_get_contents("otherFile".".html");
$str3 = "abc"; // here Node old

$htmlVar = str_replace($str3, $str2, $str1);
person mikel    schedule 01.07.2015