【发布时间】: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" 有效。