PHP 几个属性的 simpleXml 问题
PHP simpleXml issue with several attributes
我有一个要创建的 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 属性覆盖了。
案例二
当我为最后一个节点添加前缀 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?
请注意,由于这个 post,我解决了第一个问题:
Unable add namespace with PHPs SimpleXML
谢谢
我修复了它,它在案例 1 中的格式很好,但是 firefox 对节点的解释很糟糕。
我有一个要创建的 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 属性覆盖了。
案例二 当我为最后一个节点添加前缀 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?
请注意,由于这个 post,我解决了第一个问题: Unable add namespace with PHPs SimpleXML
谢谢
我修复了它,它在案例 1 中的格式很好,但是 firefox 对节点的解释很糟糕。