在 MxGraph 编辑器中打开 .drawio 文件
Open .drawio file in MxGraph Editor
如何打开.drawio XML file into MxGraph?
在 MxGraph 中我们可以导入一个 XML 文件。但是.drawio
文件和MxGraph文件的结构完全不同,虽然都是XML.
是的,我终于找到了在 mxGraph 中打开绘图 io xml 文件的方法。在打开之前,我们需要将 draw io xml 文件转换为 mxgraph xml 文件。这里使用解码函数将 draw io xml 文件转换为 mxgraph xml 文件。可以在 xml 调用函数中使用此解码方法。
解码(数据){
function bytesToString(arr) {
var str = "";
for (var i = 0; i < arr.length; i++) {
str += String.fromCharCode(arr[i]);
}
return str;
}
function parseXml(xml) {
if (window.DOMParser) {
var parser = new DOMParser();
return parser.parseFromString(xml, "text/xml");
} else {
var result = createXmlDocument();
result.async = "false";
result.loadXML(xml);
return result;
}
}
function getTextContent(node) {
return node != null
? node[node.textContent === undefined
? "text"
: "textContent"]
: "";
}
try {
var node = parseXml(data).documentElement;
if (node != null && node.nodeName === "mxfile") {
var diagrams = node.getElementsByTagName("diagram");
if (diagrams.length > 0) {
data = getTextContent(diagrams[0]);
}
data = atob(data);
data = bytesToString(Pako.inflateRaw(data));
data = decodeURIComponent(data);
}
} catch (e) {
return;
}
if (data.length > 0) {
this.LoadGraph("", this.SelectGraphCell, data);
}
如何打开.drawio XML file into MxGraph?
在 MxGraph 中我们可以导入一个 XML 文件。但是.drawio
文件和MxGraph文件的结构完全不同,虽然都是XML.
是的,我终于找到了在 mxGraph 中打开绘图 io xml 文件的方法。在打开之前,我们需要将 draw io xml 文件转换为 mxgraph xml 文件。这里使用解码函数将 draw io xml 文件转换为 mxgraph xml 文件。可以在 xml 调用函数中使用此解码方法。
解码(数据){
function bytesToString(arr) {
var str = "";
for (var i = 0; i < arr.length; i++) {
str += String.fromCharCode(arr[i]);
}
return str;
}
function parseXml(xml) {
if (window.DOMParser) {
var parser = new DOMParser();
return parser.parseFromString(xml, "text/xml");
} else {
var result = createXmlDocument();
result.async = "false";
result.loadXML(xml);
return result;
}
}
function getTextContent(node) {
return node != null
? node[node.textContent === undefined
? "text"
: "textContent"]
: "";
}
try {
var node = parseXml(data).documentElement;
if (node != null && node.nodeName === "mxfile") {
var diagrams = node.getElementsByTagName("diagram");
if (diagrams.length > 0) {
data = getTextContent(diagrams[0]);
}
data = atob(data);
data = bytesToString(Pako.inflateRaw(data));
data = decodeURIComponent(data);
}
} catch (e) {
return;
}
if (data.length > 0) {
this.LoadGraph("", this.SelectGraphCell, data);
}