不使用PHP中的DomDocument创建属性

时间:2013-10-01 06:48:29

标签: php xml domdocument

我被DomDocument

困住了

这件事情很好,毫无疑问 -

$resource1->appendChild($dom->createAttribute('type'))
          ->appendChild($dom->createTextnode("webcontent"));

它正在向资源节点

添加type="webcontent"

但是,当我使用此代码时,不将其添加到其中 -

$resource1->appendChild($dom->createAttribute('adlcp:scormType'))
          ->appendChild($dom->createTextnode("sco"));

预计会生成 - adlcp:scormType="sco"< - 无效

然而,如果我正在创造 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"< - 工作

代码 -

$manifestNode->appendChild($dom->createAttribute('xmlns:xsi'))
             ->appendChild($dom->createTextNode("http://www.w3.org/2001/XMLSchema-instance"));

让我知道我做错了什么以及如何让它发挥作用

修改

错误 -

  

XML解析错误:前缀未绑定到命名空间

使用Google关键字 - xml parsing error prefix not bound to a namespace php进行Google搜索,但帮助不大。

1 个答案:

答案 0 :(得分:1)

在节点上设置属性:

$resource1->setAttribute('type', 'webcontent');

在节点上设置命名空间属性(假设这是“adlcp”前缀表示的命名空间):

$resource1->setAttributeNS('http://www.adlnet.org/xsd/adlcp_rootv1p2', 'adlcp:scormType', 'sco');