是否可以在Javascript中创建一个带有前缀的XML节点
Is it posible to create a XML node with prefix in Javascript?
im试图创建一个具有类似名称空间或前缀的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级别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.
您可以使用:
nodeObject.prrefix=前缀
将返回:
nodeObject.prefix
我认为我走在了正确的轨道上。。。这是我的密码。它使用createElementNS。
谢谢Martin:)。
var container = document.createElement("root");
var bpmn = document.createElementNS('http://your-namespace-uri-here','bpmn:definitions');
bpmn.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xsi","http://ww w.w3.org/2001/XMLSchema-instance");
bpmn.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:bpmn","http://www.omg.org/spec/BPMN/20100524/MODEL");
bpmn.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:bpmndi","http://www.omg.org/spec/BPMN/20100524/DI");
bpmn.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:di","http://www.omg.org/spec/DD/20100524/DI");
bpmn.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:dc","http://www.omg.org/spec/DD/20100524/DC");
var process = document.createElementNS("task",'bpmn:process');
process.id="Process_1";
process.setAttribute("isExecutable","false");
var sequenceFlow = document.createTextNode("sequenceFlow_1");
var start = document.createElementNS("task",'bpmn:startEvent');
start.id="StartEvent_1";
var outgoing = document.createElementNS("task",'bpmn:outgoing');
outgoing.appendChild(sequenceFlow)
start.appendChild(outgoing);
var sequenceFlow1 = document.createTextNode("sequenceFlow_1");
var incoming = document.createElementNS("incoming","bpmn:incoming");
incoming.appendChild(sequenceFlow1)
var task = document.createElementNS("task","bpmn:task");
task.id = "Task_1";
task.setAttribute("name","Titulo112");
task.appendChild(incoming);
process.appendChild(start);
process.appendChild(task);
bpmn.appendChild(process);
container.appendChild(bpmn);
console.debug(容器);
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 在jquery中生成一个自动前缀编号
- URL.createObjectURL返回一个前缀为null的blob.例如:Blob:null/12415-63
- 现代化与仅为CSS中的前缀提供回退.哪一个,为什么
- 我需要javascript自动前缀+后缀,因为它填充一个字段?我想用撇号把它括起来
- 我需要javascript前缀+后缀,因为它是填充一个字段?我想用撇号把它括起来
- Modernizr.前缀(不是一个函数)在Magento
- 当添加一个新的html元素(如iframe等)时,绝对url将被覆盖为相对url(即在url提供的前缀处添加base地址
- 我如何给一个号码加前缀和加零?
- 一个消除CSS中供应商前缀的脚本
- 如何创建一个jquery函数来影响id的前缀和后缀
- 是否可以在Javascript中创建一个带有前缀的XML节点
- 如何使用适用于 Node.js 的 AWS 开发工具包将 Amazon S3 中的所有对象从一个前缀复制/移动到另一个前
- Textarea ng-bind,其中value有一个前缀和后缀