我有以下代码:
$newDOM = new DOMDocument('1.0', 'utf-8');
$foo = $newDOM->createElement('Input', 'THIS IS MY VALUE');
$newDOM->appendChild($foo);
echo $newDOM->saveHTML();
这是仅输出的内容:<Input>
但是当我将createElement更改为'div'时,它可以正常工作
这是'div'或任何其他输入输出的内容:
<div>THIS IS MY VALUE</div>
这是我的var_dump($foo)
:
object(DOMElement)#5 (17) {
["tagName"]=>
string(5) "Input"
["schemaTypeInfo"]=>
NULL
["nodeName"]=>
string(5) "Input"
["nodeValue"]=>
string(16) "THIS IS MY VALUE"
["nodeType"]=>
int(1)
["parentNode"]=>
string(22) "(object value omitted)"
["childNodes"]=>
string(22) "(object value omitted)"
["firstChild"]=>
string(22) "(object value omitted)"
["lastChild"]=>
string(22) "(object value omitted)"
["previousSibling"]=>
NULL
["attributes"]=>
string(22) "(object value omitted)"
["ownerDocument"]=>
string(22) "(object value omitted)"
["namespaceURI"]=>
NULL
["prefix"]=>
string(0) ""
["localName"]=>
string(5) "Input"
["baseURI"]=>
NULL
["textContent"]=>
string(16) "THIS IS MY VALUE"
}
答案 0 :(得分:2)
createElement
的第二个参数是您正在创建的标记的内容。 <input>
标记不能包含文字。您需要设置其value
属性。您正在尝试制作<input value="this is my value">
,而不是<input>this is my value</input>
。
请参阅createAttribute
。