我有一个像这样创建的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
由于
答案 0 :(得分:0)
我修复了它,它用格式1进行了很好的格式化,但是firefox严重地解释了节点。