Javascript jQuery GraphML解析(清理导入的数据)

Javascript jQuery GraphML解析(清理导入的数据),javascript,jquery,graphml,Javascript,Jquery,Graphml,因此,我在我的一个脚本中切换graphML导入方法,并且在清理导入的数据时遇到了问题。当前,graphML数据如下所示: <node id="1"> <data key="url">www.someURL.com</data> <data key="label">Guy, This</data> <data key="profile_url">/dir/uri=http...</data>

因此,我在我的一个脚本中切换graphML导入方法,并且在清理导入的数据时遇到了问题。当前,graphML数据如下所示:

<node id="1">
  <data key="url">www.someURL.com</data> 
  <data key="label">Guy, This</data> 
  <data key="profile_url">/dir/uri=http...</data> 
  <data key="number_of_authored_works">x</data> 
  <data key="earliest_publication">y</data> 
  <data key="num_earliest_publication">z</data> 
  <data key="latest_publication">a</data> 
  <data key="num_latest_publication">b</data> 
  <data key="num_unknown_publication">c</data> 
www.someURL.comGuy, This/dir/uri=http...xyzabc
当我去控制台请求一个节点(someVar[I])时,我得到如下结果:

<node id="1">
  <data key="url">www.someURL.com</data> 
  <data key="label">Guy, This</data> 
  <data key="profile_url">/dir/uri=http...</data> 
  <data key="number_of_authored_works">x</data> 
  <data key="earliest_publication">y</data> 
  <data key="num_earliest_publication">z</data> 
  <data key="latest_publication">a</data> 
  <data key="num_latest_publication">b</data> 
  <data key="num_unknown_publication">c</data> 
www.someURL.comGuy, This/dir/uri=http...xyzabc
所以我至少有所有必要的数据…很好。但我想从每个数据点中生成键:值对。所以本质上,someVar[i][0]应该是:

someVar[i][0]
  url: 'www.someURL.com'

除非我遗漏了什么,否则你只需要在那里再扔一个圈。迭代每个“数据”节点:

$(xml).find('edge').each(function (i) {
    $(this).find('data').each(function(j) {
        var key = $(this).attr('key');
        someVar[i] = someVar[i] || {};
        someVar[i][key] = $(this).text();
    });
});
现在
someVar[0]
看起来像:

{
    url: 'www.someURL.com',
    label: 'Guy, This'
    ...
}

除非我遗漏了什么,否则你只需要在那里再扔一个圈。迭代每个“数据”节点:

$(xml).find('edge').each(function (i) {
    $(this).find('data').each(function(j) {
        var key = $(this).attr('key');
        someVar[i] = someVar[i] || {};
        someVar[i][key] = $(this).text();
    });
});
现在
someVar[0]
看起来像:

{
    url: 'www.someURL.com',
    label: 'Guy, This'
    ...
}

这在理论上完全有道理。我完全按照您提到的那样实现了它,但是控制台中出现了一个TypeError:“无法设置未定义的属性'url'”它发生在'someVar[I][key]'行上“url”是第一个键,所以它要么在开始前就中断了,要么在某个地方出界了,对吧?哦,我的错。让我编辑我的回答。您确实需要先初始化
someVar[i]
如下:
someVar[i]={}
。现在修复它。忘记初始化索引,因此它试图定义一些不存在的内容。愚蠢的错误。谢谢!是的,你完全明白。没问题!这在理论上完全有道理。我完全按照您提到的那样实现了它,但是控制台中出现了一个TypeError:“无法设置未定义的属性'url'”它发生在'someVar[I][key]'行上“url”是第一个键,所以它要么在开始前就中断了,要么在某个地方出界了,对吧?哦,我的错。让我编辑我的回答。您确实需要先初始化
someVar[i]
如下:
someVar[i]={}
。现在修复它。忘记初始化索引,因此它试图定义一些不存在的内容。愚蠢的错误。谢谢!是的,你完全明白。没问题!