创建区分大小写或';camelCase&x27;使用JavaScript或jQuery的XML节点

创建区分大小写或';camelCase&x27;使用JavaScript或jQuery的XML节点,javascript,jquery,xml,excel,Javascript,Jquery,Xml,Excel,我需要在JavaScript中创建一些区分大小写的XML节点,这些节点的属性名之间带有冒号 示例:联系人姓名 当我尝试通过JavaScript使用createElement()函数创建元素时,它会以小写形式创建它。此外,添加带有冒号的属性也有很多问题。例如:ss:Type=“String” 这是Excel数据,我正在将源.xml文件保存回.xls文件。XML元素和属性的情况对于Excel能够读取文件非常重要 任何示例或指针都会很有帮助。您正在寻找的JavaScript方法是和 然后,如果您想取回

我需要在JavaScript中创建一些区分大小写的XML节点,这些节点的属性名之间带有冒号

示例:
联系人姓名

当我尝试通过JavaScript使用
createElement()
函数创建元素时,它会以小写形式创建它。此外,添加带有冒号的属性也有很多问题。例如:
ss:Type=“String”

这是Excel数据,我正在将源.xml文件保存回.xls文件。XML元素和属性的情况对于Excel能够读取文件非常重要


任何示例或指针都会很有帮助。

您正在寻找的JavaScript方法是和

然后,如果您想取回字符串,
.innerHTML
将不再工作,因此您必须使用

保罗·S.的报告给了我一个解决方案

我使用
createElement()
创建了所需的XML DOM元素,并使用
setAttribute()
添加了所需的属性。这导致:

联系人姓名
请注意,本例中的元素和属性名称都是小写的。然而,我真正想要的是:

联系人姓名

按照Paul S的建议,首先通过
XMLSerializer()
将XML DOM转换为字符串,然后我简单地使用
replace()
转换所有出现的
这是一个过时的问题,但我会给出我的答案:
使用
window.document
创建元素时,您正在使用http://www.w3.org/1999/xhtml)和使用它创建的节点响应html标准,并具有您所经历的限制。
您应该使用一个函数来处理通用XML

// instantiate a new Document  
var xml_doc = document.implementation.createDocument('optional_namespace','rootElement');  

//  then your code to create element  
var e = xml_doc.createElementNS('http://www.microsoft.com/office/excel/', 'Data');  
e.setAttributeNS('http://www.microsoft.com/office/excel/', 'ss:Type', 'String');  
e.textContent = 'Contact Name';  

// probably append it  
xml_doc.documentElement.appendChild(e);  

// serialized xml_doc:  
var s = new XMLSerializer();  
s.serializeToString(xml_doc);  

/*
<rootElement xmlns="optional_namespace">
  <Data xmlns="http://www.microsoft.com/office/excel/" xmlns:ss="http://www.microsoft.com/office/excel/" ss:Type="String">Contact Name</Data>
</rootElement>"
*/
//实例化一个新文档
var xml_doc=document.implementation.createDocument('optional_namespace','rootElement');
//然后,使用您的代码创建元素
var e=xml_doc.createElements('http://www.microsoft.com/office/excel/","数据",;
e、 刚毛('http://www.microsoft.com/office/excel/“,”ss:Type“,”String“);
e、 textContent='联系人姓名';
//可能会附加它
xml_doc.documentElement.appendChild(e);
//序列化xml_文档:
var s=新的XMLSerializer();
s、 序列化字符串(xml\u doc);
/*
联系人姓名
"
*/

编辑:在Chrome和FF中测试有几个技巧:1)XML区分大小写,这不是一个选项2)这些分号称为“名称空间”。类型上的ss:前缀仍在消失。仍在寻找。似乎是特定于浏览器的?(Chrome忽略了它,firefox添加了大量xmlns属性)。打印后自己解析字符串似乎是一种可行的方法。感谢您为此付出的努力。我得到了一个答案并将其发布在下面。+1,因为您的答案确实很有帮助。谢谢
var s = new XMLSerializer();
s.serializeToString(e);
// instantiate a new Document  
var xml_doc = document.implementation.createDocument('optional_namespace','rootElement');  

//  then your code to create element  
var e = xml_doc.createElementNS('http://www.microsoft.com/office/excel/', 'Data');  
e.setAttributeNS('http://www.microsoft.com/office/excel/', 'ss:Type', 'String');  
e.textContent = 'Contact Name';  

// probably append it  
xml_doc.documentElement.appendChild(e);  

// serialized xml_doc:  
var s = new XMLSerializer();  
s.serializeToString(xml_doc);  

/*
<rootElement xmlns="optional_namespace">
  <Data xmlns="http://www.microsoft.com/office/excel/" xmlns:ss="http://www.microsoft.com/office/excel/" ss:Type="String">Contact Name</Data>
</rootElement>"
*/