2

要素名を json のキーとして使用する代わりに、ノード タイプを記述する、より一般的なキーを使用して json を生成する必要があります。d3.js は、これらのタイプの json ファイルを使用して視覚化を生成します。node.js モジュール xml2js を使用して、単純化されたバージョンの xml ドキュメントを解析すると、次のようになります。

{
"XML": {
    "$": {
        "xmlns": "http://example.org/example/2011/1"
    },
    "Building": [
        {
            "BuildingID": [
                {
                    "$": {
                        "id": "BuildingAudit"
                    }
                }
            ],
            "ProjectStatus": [
                {
                    "Date": [
                        "2013-07-16"
                    ],
                    "EventType": [
                        "audit"
                    ]
                }
            ]
        },
        {
            "BuildingID": [
                {
                    "$": {
                        "id": "BuildingRetrofit"
                    }
                }
            ],
            "ProjectStatus": [
                {
                    "Date": [
                        "2013-08-06"
                    ],
                    "EventType": [
                        "job completion testing/final inspection"
                    ]
                }
            ]
        }
    ],
    "Project": [
        {
            "BuildingID": [
                {
                    "$": {
                        "id": "BuildingRetrofit"
                    }
                }
            ],
            "ProjectDetails": [
                {
                    "ProjectStatus": [
                        {
                            "Date": [
                                "2013-08-06"
                            ],
                            "EventType": [
                                "job completion testing/final inspection"
                            ]
                        }
                    ],
                    "ProjectSystemIdentifiers": [
                        {
                            "$": {
                                "id": "Project_JobCompletion"
                            }
                        }
                    ]
                }
            ],
            "ProjectID": [
                {
                    "$": {
                        "id": "Project"
                    }
                }
            ]
        }
    ]
}

私が必要とするのは、要素名のキーが「名前」であり、子が「子」のキーを持つ識別可能なノードである、このようなものです。

{
"name": "flare",
"children": [
{
    "name": "analytics",
    "children": [
    {
        "name": "cluster",
        "children": [
        {"name": "AgglomerativeCluster", "size": 3938},
        {"name": "CommunityStructure", "size": 3812},
        {"name": "HierarchicalCluster", "size": 6714},
        {"name": "MergeEdge", "size": 743}
        ]
        },
        {
            "name": "graph",
            "children": [
            {"name": "BetweennessCentrality", "size": 3534},
            {"name": "LinkDistance", "size": 5731},
            {"name": "MaxFlowMinCut", "size": 7840},
            {"name": "ShortestPaths", "size": 5914},
            {"name": "SpanningTree", "size": 3416}
            ]
        }
        ]
    }
    ]
}

xml ドキュメントには多くの種類の要素があり (上記の例よりも多く)、かなり深くネストされています。さらに、どの要素が存在するかは先験的にわかりません。これらの要素の多くはオプションです。私はあらゆるタイプのソリューション (javascript) に対してオープンです - それが xml パーサーでオプションを設定するか、deepClone タイプの操作でデータを条件付きでコピーするかどうか。

ありがとうございました

4

0 に答える 0