我做了这个函数:
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)
,但这有点不同,或者可能是我在阅读文档时没有正确理解。
由于您使用的是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);
这样,您就可以添加具有所需值的元素。请记住,如果要向新创建的元素添加属性,则在调用appendChild
之前,必须对$element
变量使用DOMDocument::createAttribute函数。