我正在尝试将属性添加到xml节点中。我创建了以下函数
function AddAttribute(xmlNode, attrname, attrvalue, path) {
var attr;
if (isIE())
attr = xmlNode.ownerDocument.createNode(2, attrname, "http://mydomain/MyNameSpace");
else
attr = xmlNode.ownerDocument.createAttributeNS("http://mydomain/MyNameSpace", attrname);
attr.nodeValue = attrvalue;
var n = xmlNode.selectSingleNode(path);
n.setAttributeNode(attr);
} 此代码在Firefox中不起作用。它会添加节点,但不会添加命名空间。我在IE和Chrome中都试过了,它工作得很好。
您知道如何添加命名空间吗?或者,您是否知道创建具有名称空间的属性的其他替代方法?
谢谢
发布于 2012-02-07 20:52:35
我找到了一个可能的解决方案。至少它现在可以在三种浏览器上使用: IE,Firefox和Chrome。
function AddAttribute(xmlNode, attrname, attrvalue, path) {
var attr;
if (xmlNode.ownerDocument.createAttributeNS)
attr = xmlNode.ownerDocument.createAttributeNS("http://www.firmglobal.com/MyNameSpace", attrname);
else
attr = xmlNode.ownerDocument.createNode(2, attrname, "http://www.firmglobal.com/MyNameSpace");
attr.nodeValue = attrvalue;
var n = xmlNode.selectSingleNode(path);
//Set the new attribute into the xmlNode
if (n.setAttributeNodeNS)
n.setAttributeNodeNS(attr);
else
n.setAttributeNode(attr);
}感谢"Tomalak“的帮助。
https://stackoverflow.com/questions/9160418
复制相似问题