我已经完成了这个功能:
protected function _addElement($xmlDocument, $elementName, $parentElement){
$element = $xmlDocument->createElement($elementName);
return $parentElement->appendChild($element);
}
我称之为,即以这种方式:
$Street = $this->_addElement($xmlDocument, 'Steet', $xmlDocument);
$House = $this->_addElement($xmlDocument, 'House', $Street);
在创建的XML文档中,我将看起来像这样:
<Street>
<House //maybe some attributes />
</Street>
因此,createElement($elementName)
函数来自DOM API,我调用DOM对象$xmlDocument
,它将创建一个封闭的节点。我需要的是使用一个函数,我将得到以下结果:
<Street>
<Yard> the dog pooped all over the backyard </Yard>
</Steet>
我在DOM API中查找了涉及文本等的内容。我偶然发现了createTextNode($content)
但是当我阅读文档时,这有点不同,或者我可能没有正确理解。
答案 0 :(得分:0)
由于你正在使用DOMDocument::createElement,你会从方法定义中注意到它有第二个非强制性参数:
public DOMElement DOMDocument::createElement ( string $name [, string $value ] )
只需将您的代码更新为:
protected function _addElement($xmlDocument, $elementName, $elementValue, $parentElement) {
$element = $xmlDocument->createElement($elementName, $elementValue);
return $parentElement->appendChild($element);
}
和
$Street = $this->_addElement($xmlDocument, 'Steet', 'My street', $xmlDocument);
$House = $this->_addElement($xmlDocument, 'House', 'My house', $Street);
这样您就可以添加具有所需值的元素。请注意,如果您要为新创建的元素添加属性,则必须先使用$element
变量appendChild
上的DOMDocument::createAttribute函数,然后才能调用{{1}}。