如何在JavaScript中创建XML命名空间节点?

时间:2013-07-23 08:53:27

标签: javascript xml

我需要使用JavaScript创建一些XML。其中一个更困难的事情是我需要使用XML限定名称填充节点的文本内容。也就是说,本地名称和前缀,例如myns:myelement。

难点在于XML文档不包含前缀应绑定到的命名空间的任何其他元素或属性。所以我需要在封闭元素中添加一个名称空间节点(xmlns)来定义前缀。例如: -

<myElement xmlns:myprefix="http://something">myprefix:foo</myElement>

我看不到在JavaScript中添加xmlns命名空间节点的好方法。目前,我有以下可怕的黑客: -

        // Hacky way to get a namespace prefix definition. TODO: can we do something nicer?
        var prefix = "ixe";
        requestElement.setAttributeNS(inputTypes[0].namespaceURL, prefix + ":" + "def", "");
        inputElement.textContent = prefix + ":" + inputTypes[0].localName;

我正在使用所需的命名空间和任意前缀创建一个不需要的属性。这会导致生成的文档具有xmlns命名空间节点,以定义命名空间的前缀。

在最新的FireFox和Chrome上,但在IE上,可以inputElement.setAttribute("xmlns:" + PREFIX, inputType.namespaceUri);。但我想要一个与浏览器无关的解决方案。

但我宁愿不创建那个虚拟属性。当然,必须可以显式创建命名空间节点。我错过了什么?

0 个答案:

没有答案