我试图用这样的名称空间或前缀创建一个xml文件。<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1"> <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> <dc:Bounds x="173" y="102" width="36" height="36" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="Task_1_di" bpmnElement="Task_1"> <dc:Bounds x="437" y="107" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1_di" bpmnElement="SequenceFlow_1"> <di:waypoint xsi:type="dc:Point" x="209" y="120" /> <di:waypoint xsi:type="dc:Point" x="323" y="120" /> <di:waypoint xsi:type="dc:Point" x="323" y="147" /> <di:waypoint xsi:type="dc:Point" x="437" y="147" /> <bpmndi:BPMNLabel> <dc:Bounds x="278" y="123.5" width="90" height="20" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram>
我尝试了document.createElement(“ bpmn”);但是我不能设置前缀。
谢谢!!
最佳答案
有document.createElementNS
,请参见http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-DocCrElNS,在其中使用var el = document.createElementNS('http://your-namespace-uri-here', 'prefix:localnamehere')
。应该可以在DOM Level 2或3实施中使用,例如Mozilla或Opera或Chrome或用于XML DOM文档的IE提供的新版本。
var ns1 = 'http://example.com/ns1';
var ns2 = 'http://example.org/ns2';
var doc = document.implementation.createDocument(ns1, 'pf1:root', null);
var el1 = doc.createElementNS(ns1, 'pf1:foo');
el1.setAttribute('id', 'e1');
doc.documentElement.appendChild(el1);
var el2 = doc.createElementNS(ns2, 'pf2:bar');
el1.appendChild(el2);
var pre = document.createElement('pre');
pre.textContent = new XMLSerializer().serializeToString(doc);
document.body.appendChild(pre);
但是,在旧版的IE中,XML DOM仅受MSXML和ActiveX支持,您需要在其中使用
createNode
方法,请参见https://msdn.microsoft.com/en-us/library/ms757901%28v=vs.85%29.aspx。关于javascript - 是否可以在Javascript中创建带有前缀的XML节点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31052554/