【发布时间】:2016-10-05 13:10:04
【问题描述】:
我有一个像这样创建的 xml 节点:
<Document xmlns="blabla" xmlns:xsi="blablablabla" xsi:schemaLocation="blablablablablabla">
我在我的代码中做了几个测试:
案例 1
$document = $this->_xml;
$document->addAttribute('xmlns:xmlns', self::XMLNS);
$document->addAttribute("xmlns:xsi", self::XMLNS_XSI);
$document->addAttribute("xmlns:xsi:schemaLocation", self::XSI_SCHEMALOCATION);
这给了我:
<Document xmlns="blabla" xsi="blablablabla" xsi:schemaLocation="blablablablablabla">
所以这里所有的 xmln 属性都被 xsi 属性覆盖了。
案例 2 当我为最后一个节点添加前缀 xmlns 时:
$document = $this->_xml;
$document->addAttribute("xmlns:xsi", self::XMLNS_XSI, self::XMLNS);
$document->addAttribute("xmlns:xsi:schemaLocation", self::XSI_SCHEMALOCATION);
这给了我:
<Document xmlns:xmlns="blabla" xmlns:xsi="blablablabla" xsi:schemaLocation="blablablabla">
案例 3 当我尝试最简单的版本时,它完全失败了:
$document = $this->_xml;
$document->addAttribute('xmlns', self::XMLNS);
$document->addAttribute("xmlns:xsi", self::XMLNS_XSI);
$document->addAttribute("xmlns:xsi:schemaLocation", self::XSI_SCHEMALOCATION);
这给了我:
<Document xmlns:xmlns="blabla" xmlns="blabla" xmlns:xsi="blablablabla" xsi:schemaLocation="blablablablablabla">
如何在我的节点中正确地拥有我的所有 3 个属性 xmlns、xmlns:xsi 和 xsi:schemaLocation?
请注意,感谢这篇文章,我解决了第一个问题: Unable add namespace with PHPs SimpleXML
谢谢
【问题讨论】:
标签: php simplexml xml-namespaces