我正在从数据库中的值创建XML文档。最初,程序导出此XML:
<customDataElementlanguage>English</customDataElementlanguage>
我已经创建了这个PHP来更改XML树:
if ($Element->nodeValue = "EN") { $Element->nodeValue = "English"; }
$doc2 = $Element->ownerDocument;
$titleElement = $doc2->createElement('title','language');
$valueElement = $doc2->createElement('value',$Element->nodeValue);
$Element->appendChild($titleElement);
$Element->appendChild($valueElement);
//$Element->nodeValue="";
进入这个:
<customDataElementlanguage>
English
<title>language</title>
<value>English</value>
</customDataElementlanguage>
我的问题是,我似乎找不到从节点中删除“英语”文本的方法,而不会消除里面的子节点title
和value
。当我用$Element->nodeValue="";
我还想将customDataElemementlanguage节点的名称更改为customDataElement,但我可以稍后处理,我想:)
答案 0 :(得分:1)
嗯,最简单的方法是将nodeValue
存储在临时变量中,并在创建其他节点之前取消设置nodeValue
。
$lang = $Element->nodeValue;
$Element->nodeValue = "";
$doc2 = $Element->ownerDocument;
$titleElement = $doc2->createElement('title','language');
$valueElement = $doc2->createElement('value', $lang);
$Element->appendChild($titleElement);
$Element->appendChild($valueElement);
但您也应该能够通过
删除DOMText
节点
$Element->removeChild($Element->childNodes->item(0));
最后。