【问题标题】:Php DOMDocument set element value by namePhp DOMDocument 按名称设置元素值
【发布时间】:2016-03-24 12:26:56
【问题描述】:

我在 Php 中使用 DOMDocument 获得了一个按名称属性的元素(我不想使用 id),但是我怎样才能将它设置为 textContent 并保存到 dom 对象?

到目前为止,我有以下代码:

$dom = new DOMDocument();
$dom->loadHTML($html);
foreach($dom->getElementsByTagName('*') as $element ){
  $element_name = $element->getAttribute("name");
  if($element_name == 'mytextareaname') {
    $element->textContent = "Some text content";
  }
}
$html_with_values = $dom->saveHTML();

但是值并没有保存,因为我可能需要在保存时引用 $dom 对象而不是 $element。我该怎么做,我可以在 foreach 中添加一个键并使用它吗?

【问题讨论】:

  • 你的语法应该是有效的。您确定遵守if 条件吗?
  • 是的,我已经测试了 if 语句已被处理,但我现在看到 $element->textContent 没有被设置,因为 echo $element->textContent 在设置值后立即返回任何内容。跨度>
  • 你能加载你真正的 HTML 吗?
  • $dom->getElementsByTagName('textarea')->item(0)->nodeValue = "Some text content" 有效。 (真正的 html 在这里太长了)似乎我需要使用 nodeValue 来设置 textContent 因为 $element->nodeValue = "Some text content" 有效。

标签: php dom


【解决方案1】:

为 textarea 设置 dom 元素的 textContent 不起作用,但将其设置为 nodeValue 会同时设置 nodeValue 和 textContent。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 2012-05-18
    相关资源
    最近更新 更多