extension/dataTool/gexf.js

(开头部分) 6KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

// GEXF File Parser
// http://gexf.net/1.2draft/gexf-12draft-primer.pdf
define(function (require) {

    'use strict';
    var zrUtil = require('echarts').util;

    function parse(xml) {
        var doc;
        if (typeof xml === 'string') {
            var parser = new DOMParser();
            doc = parser.parseFromString(xml, 'text/xml');
        }
        else {
            doc = xml;
        }
        if (!doc || doc.getElementsByTagName('parsererror').length) {
            return null;
        }

        var gexfRoot = getChildByTagName(doc, 'gexf');

        if (!gexfRoot) {
            return null;
        }

        var graphRoot = getChildByTagName(gexfRoot, 'graph');

        var attributes = parseAttributes(getChildByTagName(graphRoot, 'attributes'));
        var attributesMap = {};
        for (var i = 0; i < attributes.length; i++) {
            attributesMap[attributes[i].id] = attributes[i];
        }

        return {
            nodes: parseNodes(getChildByTagName(graphRoot, 'nodes'), attributesMap),
            links: parseEdges(getChildByTagName(graphRoot, 'edges'))
        };
    }

    function parseAttributes(parent) {
        return parent ? zrUtil.map(getChildrenByTagName(parent, 'attribute'), function (attribDom) {
            return {
                id: getAttr(attribDom, 'id'),
                title: getAttr(attribDom, 'title'),
                type: getAttr(attribDom, 'type')
            };
        }) : [];
    }

    function parseNodes(parent, attributesMap) {
        return parent ? zrUtil.map(getChildrenByTagName(parent, 'node'), function (nodeDom) {

            var id = getAttr(nodeDom, 'id');
            var label = getAttr(nodeDom, 'label');

            var node = {
                id: id,
                name: label,
                itemStyle: {
后面还有 144 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。