html - 将 DOMXpath 转换为 HTML 字符串

标签 html xpath domxpath

有没有办法将 DOMXpath 对象转换回 HTML?我想替换 H​​TML 的一部分

<div class='original'>Stuff</div>

替换为:

<div class='replacement'>New Stuff</div>

然后将其返回到有效的 Xpath。我知道 DOMDocument::saveHTML 函数存在,但如果我这样做

 XPATH->saveHTML(); 

我收到一个错误。任何建议将不胜感激。

最佳答案

看起来像an XY problemDOMXPath始终适用于 DOMDocument 实例,因此您应该始终保存 DOMDocument。请参阅下面的工作演示示例:

<?php
  $xml = "<parent><div class='original'>Stuff</div></parent>";
  $doc = new DOMDocument();
  $doc->loadXML($xml);
  $xpath = new DOMXpath($doc);

  //get element to be replaced
  $old = $xpath->query("/parent/div")->item(0);

  //create new element for replacement
  $new = $doc->createElement("div");
  $new->setAttribute("class", "replacement");
  $new->nodeValue = "New Stuff";

  //replace old element with the new one
  $old->parentNode->replaceChild($new, $old);

  //TODO: save the modified HTML instead of echo
  echo $doc->saveHTML();
?>

eval.in demo

输出:

<parent><div class="replacement">New Stuff</div></parent>

关于html - 将 DOMXpath 转换为 HTML 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35763504/

相关文章:

javascript - Jquery 幻灯片悬停功能显示 .stop 错误(但仍然有效)

java - java 的 BigDecimalInstantiation PMD 规则的 xpath 表达式是什么

xpath - 投影和保留结构

dom - 匹配字符串并提取外部元素?

php - 段落中第一句的 Xpath 表达式

php - 按节点深度对 DOMXPath 查询结果排序

Jquery 切换不工作

html - 尽管表单有效,但 ParseMultipartForm 总是失败

html - 当我使用浏览器刷新页面 (F5) 重新加载页面时,Odoo 状态栏出现故障

python - 如何在python中搜索具有给定属性值的Xml节点